在火狐和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():获得用户所选文件的指定字符编码的文本。文章来源: