阅读本文之前,可以先阅读RFC1867 Form Based File Upload in HTML协议。
1.
不知道为什么,在局域网,有些电脑上含有<input type="file>的<form method="post" enctype="multipart/form-data">表单提交时很快,但有些很慢。
服务器端使用过多种文件接收工具库测试如apache common file upload、jspsmartupload等等亦如此。
也换过浏览器如IE和FireFox,问题依然。
在搜索的过程中,有人说这是浏览器的限制,或者是网络问题,或者是服务器网络设定等等,但是... 没有人指出具体的解决方案,><!。
不过在多次试验下,终于发现,如果是用applet来发送或者是用xmlhttp把表单打包成multipart/form-data格式可以解决这个问题,热泪盈眶中...
当然事情不是这么顺利。首先我使用applet,但是发现该死的jre安全设定不允许访问本地文件,耗了我很多精力。虽然后来applet成功了,不过设定这么困难,而且还要下载jre,客户肯定不干。
然后我考虑在浏览器中打包数据,用流发送。首先在一个法国网站找到mozilla/firefox的解决方案,坚定了我的信心。尝试在IE里用Scripting.FileSystemObject和ADODB.Stream发送,但是ADODB.Stream蹩脚的使用方法把我困住,后来,居然在VB论坛找到了正确的api使用方法,然后我把他转成javascript