FireFox - 在火狐firefox和IE中取file的value

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():得到用戶所選文件的指定字符編碼的文本。文章來源:
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章