上傳文件出現c:/fakepath問題


來源於:  http://blog.sina.com.cn/s/blog_8033ea570102v9zv.html

 

瀏覽器為了保護客戶隱私安全,會將上傳文件的路徑替換成c:/fakepath,目前有一下解決方法:

一、通過修改瀏覽器的安全設置:

     工具=>Internet選項=>安全=>自定義級別==>找到“其他=>基於內容打開文件,而不是基於文件擴展名”,選擇[禁用]即可

 

但是作為一個開發者,我們不能要求客戶去這么干,所以需要在編寫代碼的時候解決這個問題。所以有第二種方式

二、在js中控制,獲得全路徑:

 
         
  1. document.getElementById("fileId").select();//選中頁面中的文件路徑
  2. var realPath = document.selection.createRange().text;//取得選中的文件路徑

    這個要求頁面有文件路徑顯示出來,如果使用了某個按鈕調用文件選擇,則無法獲得全路徑,如下

jsp頁面:

 
         
  1. <input type="button" value="間接獲得文件" id="toGetFile" class="button" onClick="getFileByButton();" >
  2. <input type="file" id="fileId" name="fileName" style="position:absolute;display:none;" size="1" hidefocus/>
js方法:
 
          
  1. function getFileByButton(){
  2. var fileId=document.getElementById("fileId");
  3. fileId.click();
  4. var path = fileId.value();
  5. }
如果是這種間接調用到就無法獲得文件真實的全路徑,就只能使用第一種方式。
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM