如何获取<input type="file">获取文件路径
现在浏览器在安全方面要求越来越严格,这段日子在项目中发现<input type="file">实现客户端浏览的时候, 在ff下不能获取文件路径,只是一个文件的名字,我实现的是一个图片预览功
能,页面有一个<div id="img">的容器,然后浏览的时候在浏览输入框的onchange事件中动态把src添加给动态创建的img。下面是兼容ie和ff的方法。
1 function getPath(obj) { 2 if (obj) { 3 if (window.navigator.userAgent.indexOf("MSIE") >= 1) { //如果是ie浏览器 4 obj.select(); 5 return obj.value; 6 } 7 else if (window.navigator.userAgent.indexOf("Firefox") >= 1) { //如果是火狐浏览器 8 if (obj.files) { 9 return window.URL.createObjectURL(obj.files[0]); 10 } 11 return obj.value; 12 } 13 return obj.value; 14 } 15 }
虽然最后ff下获取的文件路径是加密后的方式(通过网上查找资料,如果想获取非加密的方式必须修改用户本地的浏览器设置,显然不合理),但是可以把路径赋值给图片的src,仍然可以在ff中显示图片。

浙公网安备 33010602011771号