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

博客分类:

  • javascript
  • HTML

在使用<input id="file_upl" type="file" />控件上传文件时,有时会需要获取文件本地路径展示给客户,这时可以通过这样的方式获取文件本地路径:

document.getElementById('file_upl').value

这在IE7及以前的IE浏览器版本上都没有问题,但是到IE8上面,就不行了,在IE8中你只会获取到这样的路径:"C:\fakepath\xxx”,其中xxx是你的文件名。

这是怎么回事呢?

原来,IE8出于安全性的考虑,上传文件时屏蔽了真实的本地文件路径,而以“C:\fakepath\”取代之。

但是我们就是想要获取真实的本地文件路径怎么办呢?

你可以通过设置浏览器安全选项得到真实路径:

Internet选项 -> 安全 -> 自定义级别 -> 将本地文件上载至服务器时包含本地目录路径 -> 选“启动” -> 确定

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

例如我的上传文件控件的HTML代码是:

<input id="file_upl" type="file" />

那么在JS代码中我就可以这样来获取真实的文件路径:

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代码就是:

var file_upl = document.getElementById('file_upl-file');
file_upl.select();

var realpath = document.selection.createRange().text;

此方案只针对IE浏览器,对其他浏览器暂时未作探讨。

转载于:https://www.cnblogs.com/zouhao/p/9546441.html

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

  1. 如何获取上传文件的本地路径

  2. 解决IE8上传文件时javascript取文件的本地路径的问题C:\fakepath\..

    IE8上传文件时javascript读取文件的本地路径的问题("C:\fakepath\")的解决方案 前一阵把IE6升级到了IE8,没想到一个网站里面的上传图片时用JavaScr ...

  3. JavaScript 获取上传文件的本地绝对路径

    一直苦恼于在表单提交时获得上传文件的本地绝对路径. 由于javascript是在浏览器环境运行的脚本语言,所以javascript的权限很低,不能操作本地资源,这样的好处是安全性提高了,但是也带来了开 ...

  4. 上传文件时路径总是C:\fakepath\的问题

    上传文件时,不论是什么路径上传的文件,路径都变成了"C:\fakepath\"+文件名的形式,查询了下,这是ie下的安全设置问题. 以下就是操作步骤:工具 -> Intern ...

  5. Js获取上传文件的绝对路径时总是的到C:\fakepath\+文件名称 解决方案

    最近上传文件获取绝对路径总是 获取到C:\fakepath+文件名称,可愁死我了 摸索一番之后找到了解决办法: Internet选项 > 安全 > 自定义级别 > 将文件上传到服务器 ...

  6. php自动分配,PHP上传文件时自动分配路径的方法_php技巧

    本文实例讲述了PHP上传文件时自动分配路径的方法.分享给大家供大家参考.具体分析如下: 网站上传文件时,如果是小的企业站,放在一个目录还没问题,当网站大了,上传的文件多了,我们就不能放在同一个目录了, ...

  7. php 选择路径上传方法,PHP上传文件时自动分配路径的方法,_PHP教程

    PHP上传文件时自动分配路径的方法, 本文实例讲述了PHP上传文件时自动分配路径的方法.分享给大家供大家参考.具体分析如下: 网站上传文件时,如果是小的企业站,放在一个目录还没问题,当网站大了,上传的 ...

  8. 通过运营界面上传图片失败,浏览器提示上传文件时发生HTTP错误(错误代码:500)

    通过运营界面上传图片失败,浏览器提示上传文件时发生HTTP错误(错误代码:500) ERROR exception 135 Internal Server Error: /ckeditor/uploa ...

  9. php获取上传文件路径 fakepath,JavaScript_js获取上传文件的绝对路径实现方法,在html中input type=file - phpStudy...

    js获取上传文件的绝对路径实现方法 在html中 function upload() { var filename = document.getElementById("importFile ...

最新文章

  1. MPB:湖南师大尹佳组-​乳酸菌对酸和胆碱盐的耐受能力
  2. xHTML+div布局:三个div,两边div宽度固定,中间div宽度自适应
  3. mysql6.5 操作日志
  4. 深入Redis客户端(redis客户端属性、redis缓冲区、关闭redis客户端)
  5. 常用的加密算法--摘要认证和签名认证的实现
  6. 史上最全IT技能学习大全公众号
  7. HBuilder 云打包生成 .apk 文件所需的安卓证书如何获取以及文件打包前必须的设置...
  8. 电子计算机怎么按不了数字,计算器失灵按不出数字
  9. 使用 jquery.wordexport.js导出的Word排版
  10. Oracle 数据压缩(Compression) 技术 说明
  11. Get Request
  12. [区块链笔记10] remix部署合约并连接Ganache 前端web3与智能合约交互
  13. 松滋覃氏家族是明皇子朱棣的御林指挥使卢振的后裔
  14. js 获取下周一的具体年月日格式为(YYYY-MM-DD)
  15. [活动召集]福建PHP社区聚会
  16. 基于小波Elman神经网络的短期风电功率预测
  17. html 彩虹字体,拿来就用,超炫彩虹字体送你了
  18. 汇编自动出栈_汇编自学 (12) 重温进出栈指令PUSH POP 和双循环
  19. web渗透测试----21、网站备份文件泄露
  20. 简单的文具店库存管理系统

热门文章

  1. 2015年企业如何避免索尼式的安全悲剧?
  2. 《Ruby程序员修炼之道》(第2版)—第1章1.2节剖析Ruby的安装
  3. NOIp #2010
  4. 固态硬盘市场或将提前爆发
  5. Discuz!NT 在线用户功能简介
  6. Glide-源码分析(一)
  7. 在mac上命令行里面如何打开文本编辑器?
  8. 嵌入式软硬件开发中遇到的坑
  9. python scrapy 抓取脚本之家文章(scrapy 入门使用简介)
  10. 在Excel中制作复合饼图