一个块文件如何使用actionscript(flex)?

时间:2009-04-22 22:48:30

标签: flex file upload

我正在进行文件传输,但文件引用API不支持文件分块。有没有人这样做过?例如,我希望能够将1个gig文件从AIR客户端上传到自定义PHP / Java /等。服务。

3 个答案:

答案 0 :(得分:1)

似乎你应该做的就是使用upload()例程。 php或java服务应该进行分块。

var myHugeFile = new air.File('myHugeLocal.file');
myHugeFile.upload(new URLRequest("http://your.website.com/uploadchunker.php"));

在adobe学习领域有一个更详细的使用文件参考的例子: http://www.adobe.com/devnet/air/flex/articles/uploading_air_app_to_server.html

答案 1 :(得分:0)

有三个选项可以跳出来:

  1. 使用支持可恢复传输的FTP服务,假设闪存也支持此功能。如果您想与自己的自定义服务进行通信,可能不是一个选项。
  2. 利用http文件部分标头支持。仅当AIR允许访问相应的http标头(content-range& content-length)时才适用。这就是BITS的作用。可能有点难以实施。
  3. 手动滚动您自己的TCP或UDP协议交换。不适合胆小的人。在走这条路之前我会查看OSS空间。

答案 2 :(得分:0)

我认为FileReference确实很重要,至少这是我观察到的。使用像Fiddler这样的工具,您可以观察它的实际效果。如果您分析FileReference上载的传出标头,则会将它们分块。

如果恢复是您所追求的,我不能说你将如何使用FileReference。我在通用帖子中上传了小文件,但这需要flash / air客户端将所有字节加载到应用程序中。在Air中,可能会或可能不会使用1GB文件闪烁(我猜测取决于您的系统)。