2011-06-03 37 views
1

負荷IMG我有以下HTML標籤:jQuery的 - 從本地驅動器

用戶選擇文件,我想預覽圖像的大小在這個文件中爲onchange事件:

$(document).ready(function(){ 
    $("#bigPicture").change(function() { 
    alert($("#bigPicture").val()); 
    $("#test1").attr("src",$("#bigPicture").val()); 
    }); 
}); 

我有很奇怪的行爲:

1)作爲警報我得到C:\fakepath\\[file name]雖然我在Ubuntu機器+谷歌瀏覽器。

2)我的文件沒有加載在img標籤中呈現。

3)在FireFox上我只有[filename] alert沒有路徑。並且圖像不被渲染。

我做錯了什麼? 這些瀏覽器是否有某種安全限制?

+0

我相信這是瀏覽器所做的一些事情,可以幫助您保護您免受任何可能已經加載頁面的惡意腳本的影響。 – 2011-06-03 23:30:17

回答

2

http://dev.w3.org/html5/spec/Overview.html#file-upload-state

由於歷史的原因,該值IDL 屬性前綴與 字符串 「C:\ fakepath \」 的文件名。一些傳統的 用戶代理實際上包含了完整的 路徑(這是一個安全漏洞) 。

在獲取時,必須返回字符串 「C:\ fakepath \」後面的 文件名的第一個文件的列表中選定的文件 ,如果有的話,或者如果列表爲空,則爲 空字符串。在 設置中,如果新值爲空 字符串,則必須清空所選文件的列表 ;否則,必須 引發INVALID_STATE_ERR異常。

1

我認爲你可以使用基於文件的URI,比如file:/// c:/test/test.jpeg。

或者,如果該文件是本地文件,則可以將其設置爲提供html的相對路徑。

相關問題