使用Flex同时上传多个文件

时间:2010-02-03 21:10:14

标签: flex flash file uploader

我一直在使用上传器,用户可以选择多个文件。

当文件在队列中上传时(一次一个),它可以正常工作,但是一旦我尝试让它一次上传2个文件,我就会遇到问题。

文件似乎经常会被锁定,并且在上传所有其他文件之前保持1%,或者根本不完整。一次上传的文件永远不会超过一个。

在Flex中同时在多个文件上调用.upload会出现问题吗?

5 个答案:

答案 0 :(得分:2)

不幸的是,每个主机的浏览器限制为2(取决于浏览器)活动连接。意思是一次只有2个上传活动,而另一个将排队。现在这通常不是一个问题,但是当上传的文件非常大时,其他上传文件会超时,即使它们没有启动。每两次上传使用子域名(upl1.mydomain.com,upl2.mydomain.com)就有一种解决方法,我没有去测试,但它应该可以解决这个问题。

参考文献:http://anirudhs.chaosnet.org/blog/2008.06.17.htmlhttp://www.ajaxperformance.com/2006/12/18/circumventing-browser-connection-limits-for-fun-and-profit/(您可以从第一个链接实际访问)。

此外,您可能无法在Flash中对上传进行排队,因为安全模型需要通过鼠标单击调用上传方法(FileReference)。

答案 1 :(得分:0)

我没有直接回答你的问题,但想到了gmail上传者。它使用swfupload(已更新link),这是开源的,因此您可以从源代码中找到它。

answer中有更多信息。

答案 2 :(得分:0)

模拟多任务处理的另一种方法是按块下载/上传,并使用callLater()进行顺序执行。 这将是早期Windows协作式多任务的复制

答案 3 :(得分:0)

问题在于Flex连接到后端的模型。通过HttpService和Remoting,Flex客户端可以打开与服务器的Http连接。如果要连接到服务器上的相同Servlet /服务,它将使用相同的连接并可能会遇到问题。

对于一个简单的测试,尝试创建同一个servlet的两个实例,并将上传请求发送到2个servlet进行2次上传。它应该工作。

答案 4 :(得分:0)

将上传脚本设为上传类可能会有所帮助..我的意思是,如果您的上传脚本是在php或asp中,那么创建该脚本的类,以便每个请求对应于每个唯一对象,我们可以同时上传文件...