在火狐和IE中取file的值
如
下代碼: 要想取得file1的值傳給
img,而後再讓
img顯示的話,在IE裏很是容易實現,直接用
document.getElementById("myimg").src=document.getElementById("file1").value;就能夠了,因
爲document.getElementById("file1").value取出來的值就是在file1裏顯示的 那個路徑,也就是說是此圖片在本機上的路徑。然而在火狐裏就沒那麼容易了,因
爲火狐
爲了安全起見將document.getElementById("file1").value的值變成了文件的名稱,也就 是說你根本沒法獲得跟file1中顯示的一摸同樣的路徑,固然這樣一來你將document.getElementById("myimg").src=document.getElementById("file1").value,圖片就不能正常 顯示了,那怎麼辦呢?固然有解決的方法。在火狐中咱們能夠這樣來取得圖片的路徑:document.getElementById("file1").files.item(0).getAsDataURL();注意必須是這樣取值 ,才能認可getAsDataURL()這個方法,而後你能夠alert一
下,就會發現出來的路徑很是的長,這是火狐將本機路徑進行了加密,而後再將這個值
賦值給
img的src就能夠了。如
下:
document.getElementById("myimg").src=document.getElementById("file1").files.item(0).getAsDataURL();測試圖片顯示成功!
火狐之因此這樣作都是
爲了安全考慮,咱們用來好像不太方便,可是也有方便的方法哦,如fileSize屬性,document.getElementById("file1").files.item(0).fileSize,這樣你 能夠經過file1就能夠獲得上傳的文件的大小,能夠用來作之後的上傳判斷,對此IE是沒法實現的(仍是我沒發現方法,不知道啦,若是你知道能夠交流一
下,嘿嘿),一般若是在 ie裏的話,都是將file1的路徑傳給
img,而後引用
Img的fileSzie屬性來判斷圖片的大小,固然你能夠在
js中生成一個Image對象,而後將src
賦值,而後判斷大小,這樣p_w_picpath能夠 不在頁面顯示。
此外,火狐的document.getElementById("file1").files.item(0)有如
下兩個屬性,三個方法。 fileName:用於獲取到用戶所選文件的名稱,這和直接取value值所獲得的結果同樣。 fileSize:獲得用戶所選文件的大小。 getAsBinary():獲得用戶所選文件的二進制數據。 getAsDataURL():獲得用戶所選文件的路徑,該路徑被加密了,目前只能在FireFox中使用。 getAsText():獲得用戶所選文件的指定字符編碼的文本。文章來源: