谷歌chrome和fileinput的问题

时间:2009-12-15 14:26:43

标签: google-chrome file-io

我们有一个网站,用户可以上传他们的简历。如果他们在任何浏览器上传它,它工作正常。如果他们不上传文件,它在所有浏览器中都可以正常使用谷歌浏览器。我们有一个服务器端vb dll捕获表单内容,上传的任何文件都存储在一个字典对象中,然后处理页面会查询。在chrome中,我们的dll报告当您实际上没有上传任何内容时会上传一个文件。同样,其他浏览器不这样做,所以我不确定发生了什么。有没有人看到这样的行为,如果有的话,有没有修复?感谢。

2 个答案:

答案 0 :(得分:1)

我的ASP项目遇到了同样的问题,其中HTTP标头由像this这样的VB函数处理。我写了这个简单的表单并分析了发送到Web服务器的HTTP头:

<form method="post" enctype="multipart/form-data" action="">
    <p><input type="file" name="file1" id="file1" /></p>
    <p><input type="submit" name="send" id="send" value="Send" /></p>
</form>

如果输入文件为空且用户点击“发送”,则所有浏览器(Chrome除外)都会发送此HTTP标头:

-----------------------------11538186919912
Content-Disposition: form-data; name="file1"; filename=""
Content-Type: application/octet-stream


-----------------------------11538186919912
Content-Disposition: form-data; name="send"

Send
-----------------------------11538186919912--
相反,Google Chrome会发送此HTTP标头:

------WebKitFormBoundaryD4c5HZchlBudkIaQ
Content-Disposition: form-data; name="file1"; filename=""


------WebKitFormBoundaryD4c5HZchlBudkIaQ
Content-Disposition: form-data; name="send"

Send
------WebKitFormBoundaryD4c5HZchlBudkIaQ--

Google Chrome,如果输入文件为空,请不要发送“Content-Type”字段。这是唯一的区别。可能,正如在我的项目中,这种差异可能会导致DLL中的错误。

我希望我帮助过你,抱歉我的英语不好!

答案 1 :(得分:0)

Chrome(最高至少8.0.552.215)存在内容类型文件问题。对我来说,如果文件没有扩展名。

请参阅:http://code.google.com/p/chromium/issues/detail?id=6800

注意:我正在使用带有FileUploadInterceptor的struts 2.0.14(使用ServletFileUpload和JakataMultipartRequest)

相关问题