首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Flex中将文件转换为ByteArray?

如何在Flex中将文件转换为ByteArray?
EN

Stack Overflow用户
提问于 2018-08-13 01:34:09
回答 2查看 0关注 0票数 0

我想知道如何将我在服务器上的文件(pdf / excel / ppt)转换为ByteArray。我想这样做的原因是显示对话框打开/保存为用户,我必须将Content-Type设置为八位字节流。对话框只显示navigateToURL(),但对于pdf,它是用户的本地浏览器设置。对于URLRequest,我必须将数据设置为ByteArray。

EN

回答 2

Stack Overflow用户

发布于 2018-08-13 10:32:24

如果你的目标是Flash Player 10,则应该可以:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="loadFile()">

    <mx:Script>
        <![CDATA[

            private var loadedFile:ByteArray;

            private function loadFile():void
            {
                var request:URLRequest = new URLRequest("http://test.enunciato.org/sample.pdf");
                var urlLoader:URLLoader = new URLLoader(request);

                urlLoader.addEventListener(Event.COMPLETE, onURLLoaderComplete);
                urlLoader.dataFormat = URLLoaderDataFormat.BINARY;
                urlLoader.load(request);
            }

            private function onURLLoaderComplete(event:Event):void
            {
                loadedFile = event.target.data;
            }

            private function saveLoadedFile():void
            {
                var file:FileReference = new FileReference();
                file.save(loadedFile, "SampleDoc.PDF"); 
            }

        ]]>
    </mx:Script>

    <mx:Button label="Save Image" horizontalCenter="0" verticalCenter="0" click="saveLoadedFile()" />

</mx:Application>

假设你首先加载文件,加载操作发生在creationComplete上,并且字节在loadedFile中存储。当用户单击“保存图像”时,字节应该可以保存。测试并验证了示例的工作原理。

票数 0
EN

Stack Overflow用户

发布于 2018-08-13 10:51:32

我认为你可以做这样的事情来获取字节数组:

代码语言:javascript
复制
private var fileBytes:ByteArray = null;

private static function loadByteArray(url:String):void {
      var loader:Loader = new Loader();

      loader.contentLoaderInfo.addEventListener(Event.COMPLETE, 
      function(e:Event):void {
        fileBytes = e.currentTarget.bytes;
      });
      loader.load(new URLRequest(encodeURI(url)));
}

// static initializer
{ loadByteArray("my url here"); }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100000545

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档