FireFox - 在火狐firefox和IE中取file的value
在火狐和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賦值,然後判斷大小,這樣image可以 不在頁面顯示。
此外,火狐的document.getElementById("file1").files.item(0)有如下兩個屬性,三個方法。
fileName:用於獲取到用戶所選文件的名稱,這和直接取value值所得到的結果一樣。
fileSize:得到用戶所選文件的大小。
getAsBinary():得到用戶所選文件的二進制數據。
getAsDataURL():得到用戶所選文件的路徑,該路徑被加密了,目前只能在FireFox中使用。
getAsText():得到用戶所選文件的指定字符編碼的文本。文章來源:
如下代碼: 要想取得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賦值,然後判斷大小,這樣image可以 不在頁面顯示。
此外,火狐的document.getElementById("file1").files.item(0)有如下兩個屬性,三個方法。
fileName:用於獲取到用戶所選文件的名稱,這和直接取value值所得到的結果一樣。
fileSize:得到用戶所選文件的大小。
getAsBinary():得到用戶所選文件的二進制數據。
getAsDataURL():得到用戶所選文件的路徑,該路徑被加密了,目前只能在FireFox中使用。
getAsText():得到用戶所選文件的指定字符編碼的文本。文章來源: