在使用<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浏览器,对其他浏览器暂时未作探讨。
相关推荐
NULL 博文链接:https://djw0101.iteye.com/blog/1262397
自己项目中遇到上传时fakepath的问题,通过这个js解决
解决chrome浏览器下使用控件上传文件时出现C:\fakepath\xx路径问题,例子下载下来可以直接使用
写在前面:计划实现图片上传预览功能,但是本地图片上传所获得路径为 C:\fakepath\”+文件名的形式,得不到文件真实路径,所以无法直接预览,于是采用将图片上传至服务器,传回服务器路径,实现预览。前端采用通过...
js获取真实路径 IE 火狐浏览器的真实路径地址。
谷歌浏览器临时文件路径修改工具。谷歌默认把临时文件夹放置在系统盘,日子久了会使系统产生许多碎片,使系统速度变慢,因此需要把临时文件夹转移至其他盘。
最近写了关于图片上传至本地文件夹或服务器,上传路径到数据库,并在上传时预览图片。本文通过实例代码给大家分享spring boot2.0图片上传至本地或服务器并配置虚拟路径的方法,需要的朋友参考下
C_fakepath_原料药注册生产现场检查要求及问题分析.pptx
百度之后得到说浏览器基于保护用户的相关安全措施,隐藏了上传的真实路径,用fakepath代替,当然,调整浏览器的相关安全设置可以解决这个问题。但我们不可能让所有用户都通过设置浏览器的安全设置来进行图片上传,...
要求:仅获取attr中的 “编辑发起状态的执行人表单” ,路径C:\fakepath\是不固定的,可以是C:\fakepath\hhh\hhhh\ 解决: var attr = C:\fakepath\编辑发起状态的执行人表单.png attr = title.split(".")[0]; // ...
#读取INI ReadINI类,用于读取您的.ini文件#用法: 将数据写入您的.ini文件var rini = new ReadINI ( @" C:\FakePath\Settings.ini " );rini . Write ( " Some Key " , " Some Value " , " Some Section. !Default...
在上传之前可以有个判断,对上传的文件有所控制,因为js控制文件大小(JS获取文件大小)有些问题,具体大家试下就知道了,在此整理了一下ajax的获取文件大小的方法,比较好用,再调试过程中,出现了c:/fakepath/ 的...
在上传之前可以有个判断,对上传的文件有所控制,因为js控制文件大小(JS获取文件大小)有些问题,具体大家试下就知道了,在此整理了一下ajax的获取文件大小的方法,比较好用,再调试过程中,出现了c:/fakepath/ 的...
aspose-words-16.4.0-jdk16.jar 是Aspose对Word文档转换PDF所用的Jar包
org.restlet-2.3.0.jar 最新版本,兼容性极佳
基于当当开源dubbox2.8.3代码编译,支持spring3版本 dubbox dubbo 2.8.3 dubbo-2.8.3.jar
taobao-sdk-java-auto-1479188381469-20180227.jar 淘宝开放平台api sdk java 版本 taobao-sdk-java-auto-*.jar
您可以上传小于<span class="red">50MB的文件 资源名称: <td><input id="txt_title" name="txt_title" type="text" class="input_1" /> <th>&...