2010-09-10 39 views
1

我目前正在构建一个旨在处理多个和非常大文件的AIR文件上传器。我已经玩过各种方法将文件分解成块(100MB)并逐渐上传,以便我可以防止上传/断开失败等。AIR/AS3:上传文件的一部分而不创建新的文件块

我已经设法在较小的文件中分解文件然后我写入磁盘上的划痕区域,但是我发现写入文件的实际过程非常缓慢,并且咀嚼了很多处理能力。写作时,我的UI基本上停下来了。更何况我有效地加倍每个文件的本地磁盘空间。

我使用的另一种方法是以100mb的块读入原始文件并将该数据存储在byteArray中,然后我可以使用URLLoader类将其作为POST数据上载。问题是,这种方式我不能跟踪上传进度,因为ProgressEvent.PROGRESS不适用于POST请求。

我想知道的是,如果可以读入我的100mb块中的文件并上传数据而不必创建新文件,但仍然使用FileReference.upload()方法来听取所有该方法给我的可用事件。 IE浏览器。创建一个由0到100mb原始文件字节组成的File(),然后在该新文件上调用upload()。

如果有帮助,我可以发布我的两种方法的代码。

干杯,大加赞赏

回答

0

我有这样的问题,但我们解决它以另一种方式,我们决定写一个插座连接器,它会连接到服务器(例如FTP/HTTP),并写下插座这个ByteArray,我们也是以相同大小的块进行的,而我们必须上传的最大的文件是BlueRay电影,大约150GB左右。

所以我希望你从我的消息中得到一些有趣的想法,如果你愿意,我可以为你分享一些代码。

+0

嗯,这是一个聪明的解决方法,因为我可以看到Socket类调度ProgressEvent。如果你能分享一个例子,那就太好了,干杯 – 2010-09-13 01:06:03

+0

iam试图实现目前非常相似的事情。你能发表这个例子吗? – user151496 2013-08-28 14:46:08