IE8上传文件时javascript读取文件的本地路径的问题("C:\fakepath\")的解决方案
前一阵把IE6升级到了IE8,没想到一个网站里面的上传图片时用JavaScript预览本地图片的功能失效了,图片总是显示错误,用alert()看了下图片的路径居然变成了C:\fakepath\*.jpg,真实的路径被C:\fakepath\取代了,于是在网上开始找解决方案。原来是因为IE8增加了安全选项,默认情况下不显示上传文件的真实路径,进入internet选项,修改下设置即可显示真实的文件路径。 以下就是操作步骤:工具 -> Internet选项 -> 安全 -> 自定义级别 -> 找到“其他”中的“将本地文件上载至服务器时包含本地目录路径”,选中“启用”即可。
第一步:
第二部:
前一阵把IE6升级到了IE8,没想到一个网站里面的上传图片时用JavaScript预览本地图片的功能失效了,图片总是显示错误,用alert()看了下图片的路径居然变成了C:\fakepath\*.jpg,真实的路径被C:\fakepath\取代了,于是在网上开始找解决方案。原来是因为IE8增加了安全选项,默认情况下不显示上传文件的真实路径,进入internet选项,修改下设置即可显示真实的文件路径。 以下就是操作步骤:工具 -> Internet选项 -> 安全 -> 自定义级别 -> 找到“其他”中的“将本地文件上载至服务器时包含本地目录路径”,选中“启用”即可。
第一步:
第二部:
解决方案 »
- 关于排序的问题
- js 动态添加数组
- 问一个对联广告的问题
- 在输入框中,如何让输入完完整一个数字后才触发onkeyup事件,输入数字的位数是不固定的.
- 急!急!急!哪位大侠帮忙看看这段程序(关于限制输入日期不大于当前日期)?
- 请指教验证表单复选框问题?验证表单复选框是否选中并输出选中个数.
- xml谁能给一个简单的例子!100分献上
- 怎样设定将一个弹出来的可放大缩小的页面隔20妙后自动关闭
- 请教一个Javascript的问题!(另有Javascript powerPoint教程相送)
- 鼠标移入,移出frame时,将触发什么事件?
- 怎么利用jsp中的request对象将checkbox的value值导出?
- 怎么在网页中动态地更换Flash文件
特别是搞alipay的证书的时候,老是提示不成功,后来放到Fakepath里面在上传就好了。,
function getPath(obj) {
if (obj) {
if (window.navigator.userAgent.indexOf("MSIE") >= 1) {
obj.select(); return document.selection.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;
}
} //以下即为完整客户端路径
var filepath=getPath(document.getElementById("iptfileupload"));
</script>给分吧
可以参考一下
这该如何是好啊!
http://topic.csdn.net/u/20101018/17/5673a640-e3f7-4500-ad72-370e5b990cdd.html?36459
这是我的贴子地址,请大家帮忙看看,谢谢
获取客服端路径 5楼的方法是可以获取的
<script>
function setImg()
{
var isIE = document.all?true:false;
var isIE7 = isIE && (navigator.userAgent.indexOf('MSIE 7.0') != -1);
var isIE8 = isIE && (navigator.userAgent.indexOf('MSIE 8.0') != -1);
var upLoadImgFile = document.getElementById("upLoadImgFile");
debugger;
var imgView = document.getElementById("imgView");
if(isIE){
if(isIE7 || isIE8)
{
upLoadImgFile.select();
imgView.src = document.selection.createRange().text;
document.selection.empty();
}else{ imgView.src = upLoadImgFile.value;}
}else{
imgView.src = upLoadImgFile.files.item(0).getAsDataURL();
}
}
</script>
但是一个问题,getAsDataURL() 获取的路径是一个很庞大的字符串。会让页面大很多!
本来要贴一下这个值的,结果太长了,不能发表!我把它保存到一个文本文件居然37.4K
再补充下 如果把Firefox改成firefox可以获得图片的名称,但是不是完整路径! 个人觉得感觉可能是那里的问题! 但是如果用这种方法,就应该把所有可能的浏览器都要判断一次,好像也蛮难搞的...
IE8确实没有解决,我现在对应的就是IE8、9,谷歌还有Safari,郁闷死了,总是出现这个该死的路径,不知道怎么解决。高手能指点一下不?
//getPath为5楼写的方法.
var filepath=getPath(document.getElementById("pic_file"));
//alert(filepath);
if(filepath!=fileURL){
ShowIMG.innerHTML = "<img name=MyIMG src='" + filepath + "'>"
fileURL = filepath;
是不是这里的问题"<img name=MyIMG src='" + filepath + "'>"这个我测试了IE6和8都是可以的.但是如果 "<img name=MyIMG src='file:\\" + filepath + "'>"是不是加了file:\\这个了.去掉的话可以.不去掉,8还是有问题.
//getPath为5楼写的方法.
var filepath=getPath(document.getElementById("pic_file"));
//alert(filepath);
if(filepath!=fileURL){
ShowIMG.innerHTML = "<img name=MyIMG src='" + filepath + "'>"
fileURL = filepath;
是不是这里的问题"<img name=MyIMG src='" + filepath + "'>"这个我测试了IE6和8都是可以的.但是如果 "<img name=MyIMG src='file:\\" + filepath + "'>"是不是加了file:\\这个了.去掉的话可以.不去掉,8还是有问题.
我也是用这个方法,可是javascript会提示access is denied.无法提交,谁有什么办法。我用的是IE9