file 获取 上传图片路径 问题 本帖最后由 jy02409187 于 2011-12-15 15:02:21 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 function uploadIMG(obj) { obj.select(); var filepath = document.selection.createRange().text;}这个是ie获取图片路径的代码。<input id="upload_img" type="file" runat="server" onchange="uploadIMG(this)"/> 这样好像没反应function uploadIMG(obj) { obj.select(); var filepath = document.selection.createRange().text;alert(filepath)} img的src填的是不是绝对地址?,我猜你写的不是绝对地址,,直接打开文件当然能打开,因为src的地址是相对文件目录建立的。而用http://localhost……打开,地址就不一样啦。 不是我写的地址,是用上传控件file上传图片,然后打印出上传之后的图片地址 先要上传到Web服务器项目指定目录中,之后才可以使用 HttpPostedFile postedFile = fuUpload.PostedFile; byte[] b1 = new byte[postedFile.InputStream.Length]; postedFile.InputStream.Read(b1, 0, (Int32)postedFile.InputStream.Length);//b1就是你要的文档 一般都是后台来判断的,比如说像文件的大小好像就不能用js获取。而且如果用js获取还要判断是那种浏览器,IE跟FF获取文件的信息好像就不一样。 <input type="hidden" name="filePath"><input type="file" name="file" onchange="filePath.value=this.value;"><input type="button" value="test" onclick="alert(filePath.value);">IE8,没想到一个网站里面的上传图片时用JavaScript预览本地图片的功能失效了,图片总是显示错误,用alert()看了下图片的路径居然变成了C:\fakepath\*.jpg,真实的路径被C:\fakepath\取代了,于是在网上开始找解决方案。原来是因为IE8增加了安全选项,默认情况下不显示上传文件的真实路径,进入internet选项,修改下设置即可显示真实的文件路径。 以下就是操作步骤:工具 -> Internet选项 -> 安全 -> 自定义级别 -> 找到“其他”中的“将本地文件上载至服务器时包含本地目录路径”,选中“启用”即可。附带不用修改浏览器安全配置的javascript代码,兼容ie, firefox全系列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; } } 参数obj为input file对象 我现在就是用PHP来判断的,但这样用户体现不好。 是安全机制没错的,浏览器处于安全考虑,把你的地址封装了,不管你这么上传都会有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; } }以上是获取绝对路径的代码,另外,ie里面,图片地址用绝对路径是行不通的,必须用滤镜来解决,所以你获取到绝对路径后还需要判断一下,如果是火狐,直接把img 的src 赋值为你获取到的值,如果是ie则用滤镜。 在http://127.0.0.1 还是显示不了真实路径 关于网站代理后JavaScript的问题 请教!跪求!div切换问题? JS验证 请教一个获取同级节点的问题 那个 为什么 广告悬浮框 会跑到SWF文件后面 有点郁闷,这算不算IE的BUG 是否可以实现直接调用客户端声音文件来播放呢??? 反防止frame 如何取得当前鼠标的坐标点? 绝对兑现!!! 点击文本框改变默认文字之后全选文字 急等JS[str.split('a',2)]问题,为何和我想的不一样..
obj.select();
var filepath = document.selection.createRange().text;
}这个是ie获取图片路径的代码。
<input id="upload_img" type="file" runat="server" onchange="uploadIMG(this)"/>
obj.select();
var filepath = document.selection.createRange().text;
alert(filepath)
}
不是我写的地址,是用上传控件file上传图片,然后打印出上传之后的图片地址
HttpPostedFile postedFile = fuUpload.PostedFile;
byte[] b1 = new byte[postedFile.InputStream.Length];
postedFile.InputStream.Read(b1, 0, (Int32)postedFile.InputStream.Length);
//b1就是你要的文档
而且如果用js获取还要判断是那种浏览器,IE跟FF获取文件的信息好像就不一样。
<input type="file" name="file" onchange="filePath.value=this.value;">
<input type="button" value="test" onclick="alert(filePath.value);">IE8,没想到一个网站里面的上传图片时用JavaScript预览本地图片的功能失效了,图片总是显示错误,用alert()看了下图片的路径居然变成了C:\fakepath\*.jpg,真实的路径被C:\fakepath\取代了,于是在网上开始找解决方案。原来是因为IE8增加了安全选项,默认情况下不显示上传文件的真实路径,进入internet选项,修改下设置即可显示真实的文件路径。
以下就是操作步骤:工具 -> Internet选项 -> 安全 -> 自定义级别 -> 找到“其他”中的“将本地文件上载至服务器时包含本地目录路径”,选中“启用”即可。
附带不用修改浏览器安全配置的javascript代码,兼容ie, firefox全系列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; } } 参数obj为input file对象
我现在就是用PHP来判断的,但这样用户体现不好。
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;
}
}
以上是获取绝对路径的代码,另外,ie里面,图片地址用绝对路径是行不通的,必须用滤镜来解决,所以你获取到绝对路径后还需要判断一下,如果是火狐,直接把img 的src 赋值为你获取到的值,如果是ie则用滤镜。
在http://127.0.0.1 还是显示不了真实路径