作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在Internet Explorer上,标准HTML文件上传表单还允许直接输入文件名(而不是使用文件选择器对话框)。这样就可以输入不存在的文件。在其他浏览器上(我不允许这样做),我想如果您在选择文件后将其删除,这种情况仍然会发生。
为了处理由该问题引起的错误(例如this one),我需要在服务器端添加一些验证代码(仅当请求实际发送到服务器时才有可能,对此我不确定) ),或在客户端(这不能非常简单,因为您无法从JavaScript沙箱访问实际文件)。除此之外,唯一(可能也是最好)的选择似乎是使用CSS魔术来隐藏输入框,就像GMail用于附件文件一样。
那么,当您尝试上传不存在的文件时会发生什么?
仍然有POST请求正在发送吗?还是浏览器会中止,如果发生,我该如何检测?
最佳答案
我想我知道了。
首先,似乎仅仅是文件不存在,还是整个路径不正确,都会有所不同。如果仅缺少该文件,则显然会进行POST。
至少在我提到的情况下(WinXP和IE6上的FCKEditor的图像上传对话框),浏览器根本不提交表单(因此,服务器端无法做任何事情)。
通过不使用正常的表单提交,而是通过使用onSubmit处理程序来停止提交(返回false),而是使用form.submit()提交表单本身,可以在客户端上检测到该问题。如果文件丢失,将出现异常。
try{
form.submit();
}
catch (e){
// show some error message
}
return false;
关于internet-explorer - 当您选择一个不存在的文件以HTML格式上载时会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/358120/
我是一名优秀的程序员,十分优秀!