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 閱讀(1785) 評論(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"; 確實可以實現不提交文件域的功能  回復  更多評論   



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


          網站導航:
           
          主站蜘蛛池模板: 新竹市| 都昌县| 满洲里市| 灯塔市| 邵东县| 合水县| 高邑县| 梨树县| 河西区| 宽城| 旬邑县| 大邑县| 牟定县| 邵阳县| 遂昌县| 姚安县| 墨玉县| 凤冈县| 涞源县| 元谋县| 孙吴县| 石屏县| 固阳县| 新化县| 花莲县| 兴和县| 永泰县| 广昌县| 焦作市| 西华县| 衡山县| 信宜市| 当雄县| 铜梁县| 德保县| 招远市| 绥中县| 子长县| 东平县| 五原县| 雷波县|