天天看點

c 上傳檔案路勁為伺服器路徑,擷取上傳檔案的路徑變成C:\fakepath\

在使用控件上傳檔案時,不論是什麼路徑上傳的檔案,路徑都變成了"C:\fakepath\"+檔案名的形式。

原來在IE7及以前的IE浏覽器版本上都沒有問題,換到了IE8上面,就不行了。

在IE8中你隻能擷取到的上傳檔案的路徑:"C:\fakepath\xxx”,其中xxx是你的檔案名。

c 上傳檔案路勁為伺服器路徑,擷取上傳檔案的路徑變成C:\fakepath\

經查詢,這是ie8下的安全設定問題。

原來,IE8出于安全性的考慮,上傳檔案時屏蔽了真實的本地檔案路徑,而以“C:\fakepath\”取代之。

如果我們想要擷取真實的本地檔案路徑怎麼辦呢? 你可以通過設定浏覽器安全選項得到真實路徑:

Internet選項 -> 安全 -> 自定義級别 -> 将本地檔案上載至伺服器時包含本地目錄路徑 -> 選“啟動” -> 确定

但作為開發人員,我們不希望使用者去設定浏覽器,我們必須通過代碼解決這個問題。

下方的是不用修改浏覽器安全配置的javascript代碼,相容ie, firefox全系列的代碼。

//參數obj為input file對象

function getPath(obj)

{

if(obj)

{

if (window.navigator.userAgent.indexOf("MSIE")>=1)

{

obj.select();

return document.selection.createRange().text;

}

else if(window.navigator.userAgent.indexOf("Firefox")>=1)

{

if(obj.files)

{

return obj.files.item(0).getAsDataURL();

}

return obj.value;

}

return obj.value;

}

}

聲明:如需轉載,請注明來源于www.webym.net并保留原文連結:http://www.webym.net/jiaocheng/257.html