Flex的FileReference类中没有save()方法

Posted

技术标签:

【中文标题】Flex的FileReference类中没有save()方法【英文标题】:There is no save() method in FileReference Class of Flex 【发布时间】:2015-08-22 16:36:57 【问题描述】:

我正在尝试将 DataGrid 的内容导出为 PDF

var bytes:ByteArray = myPDF.save(Method.LOCAL);
var f:FileReference = new FileReference();
f.save(bytes,"TestAttachment.pdf"); 
/* Call to a possibly undefined method save through a reference with static type flash.net:FileReference. */

我正在使用 AlivePDF 0.1.4.9 版和 flex builder 3 来构建一个简单的 Flex 应用程序

【问题讨论】:

【参考方案1】:

FileReference 只是对文件的引用,您正在寻找 FileStream。假设 ByteArray 已经是 PDF 内容:

var bytes:ByteArray = myPDF.save(Method.LOCAL);
var file:File = File.desktopDirectory.resolvePath("myPDF.pdf");
var fileStream:FileStream = new FileStream();

fileStream.open(file, FileMode.WRITE);
fileStream.writeBytes(bytes);
fileStream.close();

对于不同设备上的目录位置, check this out

【讨论】:

【参考方案2】:

我认为这个问题是由构建设置引起的。

在 Flex Builder > 项目 > 属性 > Flex 编译器中,将最低 Flash Player 版本设置为 10.0.0 以上。 之后,您可以使用 FileReference.save() 方法。

也许你的设置是 9.x.x

【讨论】:

【参考方案3】:

将 flex SDK 更新到 3.6A,将 Flex 编译器版本更新到 10.1.0,感谢 @(Yasuyuki Uno) 和 FileReference.Save 工作

var f:FileReference = new FileReference();
f.save(bytes,"TestAttachment.pdf");

【讨论】:

以上是关于Flex的FileReference类中没有save()方法的主要内容,如果未能解决你的问题,请参考以下文章

在 Flex 中为 PNG 图像识别由 FileReference 对象编码的数据的性质

Flex 的 FileReference.save() 只能在用户事件处理程序中调用——我该如何解决这个问题?

ASP.NET Web API,从 Flex FileReference 上传时 MIME 多部分流意外结束

flex FileReference 保存功能触发取消事件与 google-chrome 版本 47.0.2526.106 m 上的 xml 文件

Flex 4 文件参考选定的图像文件尺寸(宽度和高度)

上传图像然后共享而不使用 sharedObject 或任何东西将文件保存在 Flex 上?