Flex启动pdf / doc文件,下载为ByteArray

时间:2012-03-20 15:29:57

标签: flex pdf bytearray

我想使用flex打开pdf / excel / doc,因为我们都知道我们可以使用navigateToUrl(URL)方法从服务器打开文件。但我的问题是那些文件是在服务器中加密的,所以我按如下方式加载文件

ByteLoader = new URLLoader();
ByteLoader.dataFormat = URLLoaderDataFormat.BINARY;
ByteLoader.load(new URLRequest (constructedURL));

这样我就可以操纵它们并获得解密文件。现在我的问题是,我的数据已经从服务器上下载了,那么我将如何使用我得到的二进制内容启动文件(pdf / doc / excel)?

无论如何我可以像在navigateToURL()中那样启动这些文件吗?

1 个答案:

答案 0 :(得分:0)

我没有直接回答,这种情况很多次但是我可以提供一个可以使用FileReference save method的后备解决方案(相信这是Flash Player 10及更高版本)。然后问题就是打开本地保存的文件,因为基于文档,名称仅由浏览或下载方法填充但不保存您可能无法使用该名称(此外我相信这只是文件的名称)不包括它保存到的完整本机路径,但这可能值得探索)。如果你在某种程度上能够获得保存文件的本机路径,我想你可以使用navigateToURL(新的URLRequest(“file:///”))来打开本地文件,我试过了最后一部分是我已经保存在硬盘上的文件,它可以工作:

        var fr:FileReference = new FileReference();
        fr.save("something worth saving", "somefile.txt");
        fr.addEventListener(Event.SELECT, function(event:Event):void
        {
            trace("something selected: " + event.target.name);
        });

        navigateToURL(new URLRequest("file:///C:/tmp0001-0160.avi"));

基本上,虽然看起来要让它真正起作用,你需要保证你知道用户要保存文件的位置,最好让它们保存并自己打开它,除非有人可以提供更好的解决方案。