想象这样一个场景
我们采用了比如AJAX的方式上传文件,可能上传文件和提交表单会提交到不同的ACTION中处理,但是比如用户选择了一个文件,然后没有点
上传,却点击提交表单,会有什么结果,当然是这个文件流会一起提交,这样造成的结果当然是造成响应速度的下降或者浪费服务器内存了,文件小的还好,要是很大的文件,我想用户是要哭了。
于是我们就需要在提交表单之前清空文件域,可能很多朋友都试过这样的方法:
document.getElementById("file").value="";
<input id="file" type="file" name="fileObj" style="width:60%">
然后你就会发现没有报错,但是问题没有被解决?
实际上文件域没有或者说不能这样赋值。
下面给出一种重写文件域的方法。
首先你需要用一个<div>或者<span>标签把你的文件域包裹起来方便我们获取,像下面这样
<span id="pfile"><input type="file" name="file" onKeyDown="return false" onpaste="return false;" ></span></td>
然后在提交表单前执行如下JS
document.getElementById("pfile").innerHTML = "<input type=\"file\" name=\"file\" onKeyDown=\"return false;\" onpaste=\"return false;\"/>";
对,就是这样,你会发现问题解决了,是不是很简单,呵呵。
本方法不是我想出来的,只是网上一兄弟想出来的,我很厚道哦
要贴出原帖地址:
http://blog.csdn.net/vince6799/archive/2005/11/01/520306.aspx 然后感谢他帮我解决了问题,同时分享给大家。