《关于IE8中文件上传时路径显示问题》由会员分享,可在线阅读,更多相关《关于IE8中文件上传时路径显示问题(2页珍藏版)》请在金锄头文库上搜索。
1、 关于 IE8 中文件上传时路径显示问题这里就 IE8 中文件上传时路径显示的小问题说道说道,有疏漏错误之处还望各位大侠指 正。使用上传文件时,需要获取文件本地路径展示页面,这 时可以通过这样的方式获取文件本地路径:document.getElementById(file_upl).value IE7 及以前的 IE 浏览器版本上都没有问题,但 IE8 上,就有问题,在 IE8 中会获取到这样的 路径:“C:fakepathxxx” ,其中 xxx 是上传的文件名。原因是 IE8 出于安全性的考虑,上传 文件时屏蔽了真实的本地文件路径,而用“C:fakepath”代替。我们就是要如何获取真实
2、的本地文件路径呢?我们通过设置浏览器安全选项得到真实路径:Internet 选项 - 安全 - 自定义级别 - 将本地文件上载至服务器时包含本地目录路径 - 选“启动” - 确定 但是,一个系统面对的用户是不确定的,我们不能指望用户去能这么 做,所以我们必须通过代码解决这个问题。下面这个方法就是取得真实路径的:/参数 obj 为 input file 对象 function getPath(obj) if(obj) if (window.navigator.userAgent.indexOf(“MSIE“)=1) obj.select(); return document.selection.
3、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; function doSomething(obj) document.getElementById(“file_id“).value = getPath(obj); doSomething(this);“/;这样,在文件路径显示时,就可以取得真实的文件路径。同时,我们还有个需求,要上传图片是显示预览效果,我们采用 filter 模式,通过滤镜,用 本地路径来做预览图片效果,用 div 元素作为滤镜预载对象:js 代码:var preload = document.getElementById(“div_id“); preload.filters.item(“DXImageTransform.Microsoft.AlphaImageLoader“).src = getPath(obj);这样,就可实现效果了。