feng

          飄逸~~~~~life

          清空文件域的一種實現

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

          posted on 2009-08-10 14:37 feng 閱讀(1784) 評論(6)  編輯  收藏

          Feedback

          # re: 清空文件域的一種實現 2009-08-11 09:14 absolutej

          問一個問題
          提交的表單和上傳的文件關系是什么?
          也就是說表單里的內容跟上傳的文件是不是附屬關系,也就是說上傳的文件依賴于表單的內容?簡單的拿外鍵來理解

          還是表單里填寫的內容和上傳的文件都是同一級關系,他們都是附屬于某個東西  回復  更多評論   

          # re: 清空文件域的一種實現 2009-08-11 09:23 feng

          實際上文件域跟其他表單域是在一個表單的啦,但是我們可以借助JS控制提交到不同的ACTION處理咯,也就是其中的文件域是單獨交給一個ACTION處理的,AJAX那種的話都是這樣的@absolutej
            回復  更多評論   

          # re: 清空文件域的一種實現 2009-08-11 09:26 字幕網站

          沒明白過來,表單和文件放到兩個form中不行么?  回復  更多評論   

          # re: 清空文件域的一種實現 2009-08-11 09:28 feng

          可以 當然是可以啦 但是你會發現有時候我們會有特別的需求啥 如果放兩個表單的話也會有布局的問題。  回復  更多評論   

          # re: 清空文件域的一種實現 2009-08-11 09:54 隔葉黃鶯

          @feng
          我想你只要把文件域的 disabled 屬性設置為 true,是不是就可以達到你想要的結果,為 disabled 的表單域是不會提交給后臺的。  回復  更多評論   

          # re: 清空文件域的一種實現 2009-08-11 10:13 feng

          提交前設置document.getElementById("upload").disabled="true"; 確實可以實現不提交文件域的功能  回復  更多評論   



          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 宣汉县| 镇江市| 黎平县| 武乡县| 合肥市| 盐津县| 高清| 长沙县| 宝鸡市| 囊谦县| 桐梓县| 南澳县| 永泰县| 黔东| 错那县| 日照市| 军事| 措勤县| 呼玛县| 镶黄旗| 赤壁市| 门源| 赣榆县| 叙永县| 阿尔山市| 萨嘎县| 瓦房店市| 崇左市| 南溪县| 连山| 突泉县| 博野县| 阜城县| 辛集市| 秦皇岛市| 丹阳市| 石家庄市| 温宿县| 桂平市| 江安县| 平舆县|