谷歌下,js获取绝对路径失败,被修改成C:\fakepath\...形式

joyhen 2012-05-09 11:16:41
RT,
jq写的 $("input[type='file']").val(); 在ie下没出现问题,可是谷歌里面被修改了,求经验大手意见
...全文
68612 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
xu2zi2chao4 2014-12-09
  • 打赏
  • 举报
回复
http://www.iefans.net/ie-shangchuan-bendi-lujing-fakepath/ 参考这样的方法解决了
IT_小华华 2014-10-23
  • 打赏
  • 举报
回复
问题解决了没 吱一声!
xiaowanzi80hou 2014-09-10
  • 打赏
  • 举报
回复
问题解决了吗,我也在纠结中
yangminjia123 2014-08-31
  • 打赏
  • 举报
回复
同求。。。。
w379631014 2014-08-28
  • 打赏
  • 举报
回复
哎,同求。。。
买房动力十足 2014-08-20
  • 打赏
  • 举报
回复
楼主 能有兼容IE7、IE8、IE9的方法吗? var file = document.getElementById("file"); file.select(); file_url = document.selection.createRange().text; 谢谢,貌似这么写IE9有问题啊
lechenging 2014-04-10
  • 打赏
  • 举报
回复
lz嫩帮我看一下吗:
            if (Sys.ie <= "6.0") {
                //ie5.5,ie6.0
                file_url = document.getElementById("file").value;
            } else if (Sys.ie >= "7.0") {
                //ie7,ie8
                var file = document.getElementById("file");
                file.select();
                file_url = document.selection.createRange().text;
            } else if (Sys.firefox) {
                //fx
                //file_url = document.getElementById("file").files[0].getAsDataURL();//获取的路径为FF识别的加密字符串
                file_url = readFileFirefox(document.getElementById("file"));
            }
            else if (Sys.chrome)
            {

            }
谷歌不知道怎么写了
人参米 2014-02-17
  • 打赏
  • 举报
回复
我也遇到这个问题,纠结很多天了. 楼主有解决方案了么?
yxking1 2013-09-02
  • 打赏
  • 举报
回复
楼主还在木有。这个问题依旧没解决 求代码。
  • 打赏
  • 举报
回复
链接都打不开啊~~~ 我也遇到这个问题~~
chenshaolei111 2013-07-17
  • 打赏
  • 举报
回复
.
ccc64524422 2012-07-10
  • 打赏
  • 举报
回复
另外,我用的是google chorme浏览器
ccc64524422 2012-07-10
  • 打赏
  • 举报
回复
我也遇到了这个问题,但是不知道怎么解决。还请仁兄指教。
代码如下:
html部分:
<td>
<a style="cursor:hand" onclick="go();">
<img alt="添加" src="images/pltj.png" title="添加用户">
</a>
<input type="file" name="cfile" id="cfile">

</td>
javascript部分:
function go()
{

var file=document.getElementById("cfile").value;
alert(file);
window.location.href="consumer_add_pltj.jsp?file="+file;
}
[Quote=引用 10 楼 的回复:]

已经解决,参考这位仁兄的:
他的原问题:http://q.cnblogs.com/q/28119/
下面是他的解决方法:
http://www.tnmblogs.com/Post.aspx?Post=b5517078-bd85-426f-b97c-ae9c9b6dab56
也谢谢各位提供的思路
[/Quote]
昨日凡阳 2012-05-09
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]

刚刚找到分享下。http://www.cesclub.com/bw/jishuzhongxin/Webjishu/2011/1129/16284.html
可能是我描述的不清楚吧,亲,我只需要得到一个兼容的获取路径的方案,置于平台不考虑,只是个网站的某个功能而已哦,非常感谢您的回答,我再测试测试下
引用 7 楼 的回复:

如果你只是在特定os下,在特定浏览器下,那就按照你说的做。其实……
[/Quote]

恩,ok!

<script type="text/javascript">
var Sys = {};
var ua = navigator.userAgent.toLowerCase();
var s;
(s = ua.match(/msie ([\d.]+)/)) ? Sys.ie = s[1] :
(s = ua.match(/firefox\/([\d.]+)/)) ? Sys.firefox = s[1] :
(s = ua.match(/chrome\/([\d.]+)/)) ? Sys.chrome = s[1] :
(s = ua.match(/opera.([\d.]+)/)) ? Sys.opera = s[1] :
(s = ua.match(/version\/([\d.]+).*safari/)) ? Sys.safari = s[1] : 0;
//以下进行测试
if (Sys.ie) document.write('IE: ' + Sys.ie);
if (Sys.firefox) document.write('Firefox: ' + Sys.firefox);
if (Sys.chrome) document.write('Chrome: ' + Sys.chrome);
if (Sys.opera) document.write('Opera: ' + Sys.opera);
if (Sys.safari) document.write('Safari: ' + Sys.safari);
</script>
joyhen 2012-05-09
  • 打赏
  • 举报
回复
刚刚找到分享下。http://www.cesclub.com/bw/jishuzhongxin/Webjishu/2011/1129/16284.html
可能是我描述的不清楚吧,亲,我只需要得到一个兼容的获取路径的方案,置于平台不考虑,只是个网站的某个功能而已哦,非常感谢您的回答,我再测试测试下
[Quote=引用 7 楼 的回复:]

如果你只是在特定os下,在特定浏览器下,那就按照你说的做。其实主要取决于user
[/Quote]
昨日凡阳 2012-05-09
  • 打赏
  • 举报
回复
如果你只是在特定os下,在特定浏览器下,那就按照你说的做。其实主要取决于user
昨日凡阳 2012-05-09
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

function getPath(obj){
if(obj){
//ie
if (window.navigator.userAgent.indexOf("MSIE")>=1)
{
obj.select();
return document.s……
[/Quote]

这种方式不是可取的。
在不同的os,如linux,windows不同版本,你可以试试,拿到的东西不一样的。
joyhen 2012-05-09
  • 打赏
  • 举报
回复
function getPath(obj){
if(obj){
//ie
if (window.navigator.userAgent.indexOf("MSIE")>=1)
{
obj.select();
return document.selection.createRange().text;
}
//firefox
else if(window.navigator.userAgent.indexOf("Firefox")>=1)
{
if(obj.files)
{
return obj.files.item(0).getAsDataURL();
}
return obj.value;
}
return obj.value;
}
}
ie和firefox已经可以的。一个网站的某个小功能,我现在只需要解决通过它<input type="file" ... />获取客户端选择的文件路径,谷歌下js得不到

[Quote=引用 3 楼 的回复:]

你用这种方式来解决,本身就是不太规范的。
IE不同版本,firefox不同版本,chrome不同版本,surfer不同版本等等浏览器,再加上不同的操作系统,比如在linux中,在unix中,在windows的不同版本中,获取到的东西或多不少不太一样。你不要指望用这种方式可以一劳永逸解决所有浏览器。

不知道你在这里获取这个的目的是什么。
[/Quote]
joyhen 2012-05-09
  • 打赏
  • 举报
回复
获取的是本地文件路径的绝对路径啊;
“C:\fakepath\.不是完全正确的吗 ?物理路径就是这样的啊。”谷歌浏览器不行,被篡改了(我知道是浏览器的问题,就是不知道用js如何去处理),比如ie里面获取的路径是 C:\Documents and Settings\Administrator\桌面\分析\绿钻贵族1.jpg
到谷歌里面就变成了“C:\fakepath\绿钻贵族1.jpg”

[Quote=引用 2 楼 的回复:]

C:\fakepath\.不是完全正确的吗 ?物理路径就是这样的啊
<input type="file" ... />不能使用虚拟路径的,哪来的绝对路径一说?
[/Quote]
昨日凡阳 2012-05-09
  • 打赏
  • 举报
回复
你用这种方式来解决,本身就是不太规范的。
IE不同版本,firefox不同版本,chrome不同版本,surfer不同版本等等浏览器,再加上不同的操作系统,比如在linux中,在unix中,在windows的不同版本中,获取到的东西或多不少不太一样。你不要指望用这种方式可以一劳永逸解决所有浏览器。

不知道你在这里获取这个的目的是什么。
加载更多回复(5)

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧