我们正在修改feng office (一个开源的,用PHP、Apache和MySQL编写的群件)。我们正在尝试实现多文件上传功能。流程是这样的:
(1)用户点击一个按钮(在网页中),一个JNLP被下载(2),这会导致一个“选择文件”对话框出现。用户选择多个文件并按下"Upload",(3)然后在循环中上传文件,并且在每个文件之后更新进度条。
现在,在mfu.jar (多文件上传内核)内部。我们使用apache httpclient-4.1.1和SwingWorker来上传文件和更新进度条多线程的东西,我告诉过你我们有多酷吗?;-)。奇怪的是,在使用Sun的java (出现Sun徽标)的机器上,事情运行得很好。在使用Open JDK或Oracle的Java (出现Oracle徽标,Linux或Windows,32位或64位)的机器上,不同的文件只被上传一次,而不是其中的一个文件被多次上传(相同的名称,相同的内容)!
有什么线索吗?
附言:如果数据不够充分,我很抱歉,我试着把注意力集中在问题上,因为我对促成因素的理解。
EIDT:显然httpclient-4.1.1使用了某种缓存机制,仍然找不到任何严格的关系。
发布于 2011-07-14 16:45:09
问题解决了。不知何故,我们忘记了考虑多线程的一些非常基本的指导原则,所有的SwingWorker都试图同时使用相同的uploader。我们为每个SwingWorkrer提供了自己的uploader,一切都运行得很完美。
https://stackoverflow.com/questions/6675523
复制相似问题