我正在尝试使用以下脚本上传文件
<form name="multiform" id="multiform" method="post" enctype="multipart/form-data" >
<input type="file" size="60" accept="text/plain" id="myfileId" name="myfile"/><br/><br/>
<input type="button" value="Upload File" onclick="submitForm();" /></form>
</body></html>
我注意到文件属性有文件名和完整路径。
POST /xxx/yyy?uploaddata=1 HTTP/1.1
Host: abc.def.com
:
:
Content-Type: multipart/form-data; boundary=---------------------------22966874711757
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
-----------------------------22966874711757
Content-Disposition: form-data; name="myfile"; filename="**C:\my\file\path\TestFile.txt**"
Content-Type: text/plain
-- ………
我试过了
如何解决此问题,以便文件上传适用于任何类型的浏览器?
答案 0 :(得分:1)
禁用“将文件上传到服务器时包含本地目录路径”确实应该可行(我在IE10和IE11中也经过测试和验证)。您是否重新启动了IE(如关闭所有IE窗口,或者为了它,完全重新启动计算机)? 我通常只听到“本地互联网区域”的这个“问题”(默认情况下,此选项通常是为内部网应用程序的向后兼容性而启用的),因此请确保为相应的区域更改此设置!
您没有描述此行为导致服务器端应用程序出现的问题,但假设您的服务器端文件上传处理程序是您的修改(与某些“黑盒”程序相反):
我的想法是记住你会收到带路径和不带路径的文件名,这样你就应该找到/
或\
字符的最后一个索引,并丢弃所有字符(包括该字符)可能导致空字符串,因为最终,您不应该信任任何用户提供的输入(他们可以手动创建/破解请求标头)。)
我已经阅读的规范answer在javascript中有一个示例,您可能需要重新阅读其他信息。
因此,如果服务器端接收代码不在您的控制之下,那么您将发布一个错误信息,并希望快速更新/修补/修复。