上传文件,jquery获取了一下<input type="file" name="uploadedFile"/> 然后通过console.log()打印发现,获取的是一个不存在的路径C:\fakepath\Testcase_Excel.rar,Testcase_Excel.rar为我上传的文件,但是C:\fakepath并非文件所在路径。
原因:
这个是处于安全性考虑的,比如文件路径会暴露你的用户名或者其他内容,而通过fakepath直接代替了其中的路径名,保护隐私和安全。
解决办法:工具 -> Internet选项 -> 安全 -> 自定义级别 -> 找到“其他”中的“将本地文件上载至服务器时包含本地目录路径”,选中“启用”即可。
但是,作为开发者,我们不能指望客户去这么做,所以我们必须通过代码解决这个问题。
//附带不用修改浏览器安全配置的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\文件名