如何获取<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中显示图片。

posted @ 2013-01-15 13:27  加油吧_呵呵  Views(2663)  Comments(0)    收藏  举报