來源於: http://blog.sina.com.cn/s/blog_8033ea570102v9zv.html
瀏覽器為了保護客戶隱私安全,會將上傳文件的路徑替換成c:/fakepath,目前有一下解決方法:
一、通過修改瀏覽器的安全設置:
工具=>Internet選項=>安全=>自定義級別==>找到“其他=>基於內容打開文件,而不是基於文件擴展名”,選擇[禁用]即可
但是作為一個開發者,我們不能要求客戶去這么干,所以需要在編寫代碼的時候解決這個問題。所以有第二種方式
二、在js中控制,獲得全路徑:
document.getElementById("fileId").select();//選中頁面中的文件路徑
var realPath = document.selection.createRange().text;//取得選中的文件路徑
這個要求頁面有文件路徑顯示出來,如果使用了某個按鈕調用文件選擇,則無法獲得全路徑,如下
jsp頁面:
<input type="button" value="間接獲得文件" id="toGetFile" class="button" onClick="getFileByButton();" >
<input type="file" id="fileId" name="fileName" style="position:absolute;display:none;" size="1" hidefocus/>
js方法:
function getFileByButton(){
var fileId=document.getElementById("fileId");
fileId.click();
var path = fileId.value();
}
如果是這種間接調用到就無法獲得文件真實的全路徑,就只能使用第一種方式。