想象這樣一個場景
我們采用了比如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 然后感謝他幫我解決了問題,同時分享給大家。