最新消息: 新版网站上线了!!!

input上传文件获取路径为C:\fakepath\文件名

上传文件,jquery获取了一下<input type="file" name="uploadedFile"/> 然后通过console.log()打印发现,获取的是一个不存在的路径C:\fakepath\Testcase_Excel.rar,Testcase_Excel.rar为我上传的文件,但是C:\fakepath并非文件所在路径。

原因:

这个是处于安全性考虑的,比如文件路径会暴露你的用户名或者其他内容,而通过fakepath直接代替了其中的路径名,保护隐私和安全。

解决办法:工具 -> Internet选项 -> 安全 -> 自定义级别 -> 找到“其他”中的“将本地文件上载至服务器时包含本地目录路径”,选中“启用”即可。

image.png

但是,作为开发者,我们不能指望客户去这么做,所以我们必须通过代码解决这个问题。

//附带不用修改浏览器安全配置的javascript代码,兼容ie, firefox全系列

function getPath(obj)  
{  
  if(obj)  
    {  
 
    if (window.navigator.userAgent.indexOf("MSIE")>=1)  
      {  
        obj.select();  
 
      return document.selection.createRange().text;  
      }  
 
    else if(window.navigator.userAgent.indexOf("Firefox")>=1)  
      {  
      if(obj.files)  
        {  
 
        return obj.files.item(0).getAsDataURL();  
        }  
      return obj.value;  
      }  
    return obj.value;  
    }  
}

//参数obj为input file对象


.....

转载请注明:谷谷点程序 » input上传文件获取路径为C:\fakepath\文件名