我一直在开发一个弹性上传器,用户可以在其中选择多个文件。
当文件在队列中上传时(一次一个),它工作正常,但是一旦我尝试让它一次上传 2 个文件,我就会遇到问题。
似乎文件经常会被锁定,要么保持在 1%,直到所有其他文件都上传,要么根本不完整。一次上传的文件不会超过一个。
在 Flex 中一次对多个文件调用 .upload 是否存在一些问题?
我一直在开发一个弹性上传器,用户可以在其中选择多个文件。
当文件在队列中上传时(一次一个),它工作正常,但是一旦我尝试让它一次上传 2 个文件,我就会遇到问题。
似乎文件经常会被锁定,要么保持在 1%,直到所有其他文件都上传,要么根本不完整。一次上传的文件不会超过一个。
在 Flex 中一次对多个文件调用 .upload 是否存在一些问题?
不幸的是,每个主机的浏览器限制为 2 个(取决于浏览器)活动连接。这意味着一次只有 2 个上传处于活动状态,而另一个将被排队。现在这通常不会成为问题,但是当上传的文件非常大时,其他上传会超时,即使它们没有开始。每 2 次上传(upl1.mydomain.com,upl2.mydomain.com)使用子域有一个解决方法,我没有进行测试,但它应该可以解决问题。
参考:http ://anirudhs.chaosnet.org/blog/2008.06.17.html和http://www.ajaxperformance.com/2006/12/18/circumventing-browser-connection-limits-for-fun-and-利润/(实际上您可以从第一个链接获得)。
此外,您可能无法在 flash 中对上传进行排队,因为安全模型需要通过鼠标单击来调用(FileReference 的)上传方法。
模拟多任务的另一种方法是按块下载/上传,并使用 callLater() 进行顺序执行。这将是早期 Windows 协作式多任务处理的复制品
问题在于 Flex 连接到后端的模型。使用 HttpService 和 Remoting,Flex 客户端打开到服务器的 Http 连接。如果您连接到服务器上的相同 Servlet/服务,它将使用相同的连接并且可能会遇到问题。
对于一个简单的测试,尝试创建同一个 servlet 的两个实例并将上传请求发送到 2 个 servlet 以进行 2 次上传。它应该工作。
将上传脚本设置为上传类可能会有所帮助.. 我的意思是,如果您的上传脚本是 php 或 asp,则创建该脚本的类,以便每个请求对应于每个唯一对象,我们可以同时上传文件...