Apache flex Flex启动pdf/doc文件,该文件作为ByteArray下载

Apache flex Flex启动pdf/doc文件,该文件作为ByteArray下载,apache-flex,pdf,bytearray,Apache Flex,Pdf,Bytearray,我想用flex打开一个pdf/excel/doc,大家都知道我们可以使用navigateToUrl(URL)方法从服务器打开一个文件。但我的问题是这些文件在服务器中是加密的,所以我按如下方式加载这些文件 ByteLoader = new URLLoader(); ByteLoader.dataFormat = URLLoaderDataFormat.BINARY; ByteLoader.load(new URLRequest (constructedURL)); 这样我就可以操纵它们,得到解密

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

ByteLoader = new URLLoader();
ByteLoader.dataFormat = URLLoaderDataFormat.BINARY;
ByteLoader.load(new URLRequest (constructedURL));
这样我就可以操纵它们,得到解密的文件。现在我的问题是,我的数据已经从服务器上下载了,那么我将如何启动文件(pdf/doc/excel)和我得到的二进制内容


我是否可以像在navigateToURL()中那样启动这些文件?

我没有直接的答案,这是很多次的情况,但我可以提供一个您可以使用的后备解决方案(请相信这是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"));

基本上,虽然这看起来像是要让它真正起作用,但你需要保证你知道用户将在哪里保存文件,最好是让他们自己保存并打开文件,除非有人能提供更好的解决方案。

我没有直接的答案,很多时候都是这样,但我可以提供一个答案-后台解决方案您可以使用(请相信这是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"));

基本上,虽然这看起来像是要让它真正起作用,但你需要保证你知道用户将在哪里保存文件,最好让他们自己保存并打开文件,除非有人能提供更好的解决方案。

是AIR应用程序还是浏览器集成swf?嗨,约丹,它是基于浏览器的,而不是基于AIR应用程序。谢谢,是AIR应用程序还是浏览器集成swf?嗨,约丹,它是基于浏览器的,不是AIR应用程序。谢谢,马尼