使用 Flex 3/Flash 9 下载字节数组

Downloading a bytearray with Flex 3/Flash 9

我正在尝试将文件保存到用户指定的位置,但是 运行 遇到 Flex 3/Flash Player 9 问题。

我最初使用 Flash 4.6 和以下代码完成了这项工作:

protected function pdfBth_printPDF(event:MouseEvent):void
{
    var createPDF:PDF = new PDF(Orientation.PORTRAIT, Unit.MM, Size.A4)
    var image:ImageSnapshot = ImageSnapshot.captureImage(albumListGrid, 500, new JPEGEncoder());
    var resize:Resize = new Resize (Mode.RESIZE_PAGE, Position.CENTERED);
    createPDF.addPage();
    createPDF.addImageStream(image.data, ColorSpace.DEVICE_RGB, resize);

    var ba:ByteArray = createPDF.save(Method.LOCAL);
    new FileReference().save(ba,"AlbumList.pdf");       
}

这非常有效,拍摄列表网格的快照,将其转换为 PDF,并保存在选定的位置。

问题是 FileReference.save 在带有 Flash Player 9 的 Flex 3 中不存在(据我所知)。如何使用 Flex 3/FP9 实现相同的功能?我希望所有工作都在客户端完成,目前无法升级 Flex 或 FP。感谢任何帮助!!!

Flex 3 或 Flash player 9 不支持在本地保存文件。唯一的解决方法是将文件上传到服务器,然后从那里下载。

查看 this example 了解如何操作。