700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > IE浏览器上传文件时本地路径变成“C:\fakepath\”的问题

IE浏览器上传文件时本地路径变成“C:\fakepath\”的问题

时间:2021-03-05 03:03:12

相关推荐

IE浏览器上传文件时本地路径变成“C:\fakepath\”的问题

控件上传文件时,有时会需要获取文件本地路径展示给客户,这时可以通过这样的方式获取文件本地路径:document.getElementById("file_upl").value这在IE7及以前的IE浏览器版本上都没有问题,但是到IE8上面,就不行了,在IE8中你只会获取到这样的路径:"C:\fakepath\xxx”,其中xxx是你的文件名。 这是怎么回事呢?原来,IE8出于安全性的考虑,上传文件时屏蔽了真实的本地文件路径,而以“C:\fakepath\”取代之。但是我们就是想要获取真实的本地文件路径怎么办呢?你可以通过设置浏览器安全选项得到真实路径:

Internet选项->安全->自定义级别->将本地文件上载至服务器时包含本地目录路径->选“启动”->确定但是,作为开发者,我们不能指望客户去这么做,所以我们必须通过代码解决这个问题。例如我的上传文件控件的HTML代码是:var file_upl=document.getElementById("file_upl");file_upl.select();var realpath=document.selection.createRange().text;

如果我们用的是Ext,那么我们会使用Ext.ux.form.FileField组件,假设我们赋给它的id是"file_upl",这时同样会产生上面的问题,解决的办法也是一样,但是我们获取到type为file的input才行,而根据"file_upl"获取到的元素根本不是我们所需要的,Ext是自动生成了一个type为file的input,你可以通过DebugBar或其他类似工具看到这个input,它的id是赋给Ext.ux.form.FileField的id加上"-file"的后缀,也就是"file_upl-file",所以获取真实文件路径的JS代码就是:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。