<input type="file">无法获得全部路径,只能获得文件名,如何解决?

<input type="file">在IE下是没有问题的,可以获得全部路径。但是在Firefox和chrome下就只能获得文件名
搜了下,好像说浏览器安全问题,Firefox3.0之后就不能获得全部路径了。用js获得的值是fakepath/文件名。

阅读 12.3k
4 个回答

这就是浏览器所做的安全考量。新版的IE也一样拿不到真实路径。

因为文件路径很有可能包含敏感信息,比如用户名。或者包含隐私信息,比如D:\日本活塞运动的研究简历.pdf (后面这个是开个玩笑,但是用户名是可以配合某些浏览器或者浏览器插件漏洞入侵/感染你的电脑的)

所以不要枉费心机了。。。即使你能找到一个偏门的方案拿到路径,过几天说不定就被修复了。

要正视信息安全,不要总觉得这些安全措施在给开发者找麻烦。飞机不一样得安检么?

浏览器限制,没法获取

btn.onchange = function(){
    var f= this.files[0]||this.files.item(0);
    var url = window.URL.createObjectURL(f);
}

这样可以得到

<input type='text' name='textfield' id='textfield' class='txt' />
<input type="file" name="fileField" class="file" id="fileField" size="28" onchange="document.getElementById('textfield').value=this.value" /> 

可以的话望采纳

clipboard.png

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题