iKuai爱快流控路由

标题: 关于【IE浏览器】用户升级不成功的解决办法。 [打印本页]

作者: WiUIi    时间: 2014-5-7 12:27
标题: 关于【IE浏览器】用户升级不成功的解决办法。
本帖最后由 WiUIi 于 2014-5-10 09:39 编辑

(, 下载次数: 15)



在使用<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浏览器,对其他浏览器暂时未作探讨。




问题实例帖子传送门
http://bbs.ikuai8.com/forum.php?mod=viewthread&tid=14799&page=1&extra=#pid131118
方案来源于互联网  探讨只针对IE8+ 版本  或是系统没有优化过的WIN8.1


作者: 53784    时间: 2014-5-7 13:03
chrome貌似也是这样显示的。  不过可以正常升级
作者: 小C    时间: 2014-5-7 13:04
专业。。。
作者: 419788808    时间: 2014-5-7 13:52
这样显示不影响升级。chrome路过。
作者: lcylcyll    时间: 2014-5-9 19:36
问题是我在8.1的系统里面火狐,CHrome还有IE没有一个可以升级的啊
作者: WiUIi    时间: 2014-5-9 21:18
lcylcyll 发表于 2014-5-9 19:36
问题是我在8.1的系统里面火狐,CHrome还有IE没有一个可以升级的啊

升级文件路径不要用中文呢?一般我会吧升级文件放在根目录。你再尝试一下。一般像火狐,chrome,opera 第三方浏览器 论坛反应都是没有太大问题的。
作者: lcylcyll    时间: 2014-5-9 21:31
WiUIi 发表于 2014-5-9 21:18
升级文件路径不要用中文呢?一般我会吧升级文件放在根目录。你再尝试一下。一般像火狐,chrome,opera 第 ...

看一下今天晚上有没放最新的包吧,我现在是06版本的
作者: WiUIi    时间: 2014-5-9 21:40
lcylcyll 发表于 2014-5-9 21:31
看一下今天晚上有没放最新的包吧,我现在是06版本的

目前好像最新版本就是0506,放出的版本大多都是网友抽奖放出的。还有就是烟花的升级包放出的也会很及时的。http://bbs.ikuai8.com/thread-14521-1-6.html

作者: lcylcyll    时间: 2014-5-9 22:05
WiUIi 发表于 2014-5-9 21:40
目前好像最新版本就是0506,放出的版本大多都是网友抽奖放出的。还有就是烟花的升级包放出的也会很及时的 ...

是啊,看那一上置顶的话有可能放出最新版本今晚
作者: WiUIi    时间: 2014-5-9 22:52
lcylcyll 发表于 2014-5-9 22:05
是啊,看那一上置顶的话有可能放出最新版本今晚

不等了,明天吧,{:3_55:}
作者: 9622315    时间: 2014-5-10 00:04
IE11没有这个问题。
作者: 小樱    时间: 2014-5-10 06:19
显示错误而已。不用鸟他,能正常升级的
作者: melville    时间: 2014-5-10 09:16
我用chrome在虚拟机里面升级显示的也是那个路径,可以升级成功的。
作者: lcylcyll    时间: 2014-5-13 23:50
WiUIi 发表于 2014-5-9 21:18
升级文件路径不要用中文呢?一般我会吧升级文件放在根目录。你再尝试一下。一般像火狐,chrome,opera 第 ...

果然是因为是中文的问题啊
我放到根目录就可以了
作者: WiUIi    时间: 2014-5-14 00:27
lcylcyll 发表于 2014-5-13 23:50
果然是因为是中文的问题啊
我放到根目录就可以了

问题解决了就行啦
作者: wxbwxb    时间: 2014-10-21 21:24
我用chrome也显示这路径,补丁直接放根目录也是升级失败,火狐也没升成功




欢迎光临 iKuai爱快流控路由 (https://bbs.ikuai8.com/) Powered by Discuz! X3.3