在 Internet Explorer 上,标准 HTML 文件上传表单还允许直接输入文件名(而不是使用文件选择器对话框)。这使得输入不存在的文件成为可能。在其他浏览器(不允许您这样做)上,我想如果您在选择文件后删除文件,这种情况仍然会发生。
为了处理由这个问题引起的错误(比如这个),我需要在服务器端添加一些验证代码(这只有在请求实际发送到服务器时才有可能,对此我不确定点),或者在客户端(这不是很简单,因为您无法从 JavaScript 沙箱访问实际文件)。除此之外,唯一(并且可能是最好的)选项似乎是使用 CSS 魔法隐藏输入框,就像 GMail 对附件文件所做的那样。
那么,当您尝试上传不存在的文件时会发生什么?是否仍有 POST 请求正在发送?或者浏览器会中止,如果中止,我如何检测到它?