img无法读取本地路径图片 我想做一个图片上传,并且本地预览功能,但是,IE7以后浏览器不支持从本地读取图片的功能,该如何解决本地预览功能,求大神解决 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 浏览器是不能查看本地图片的,兄弟放弃吧,我之前也想这么干。除非你写一个ActiveX控件查看本地文件,而且只能用IE打开 Refer this:http://www.cnblogs.com/insus/archive/2012/11/13/2768951.html 但是,我在IE9下用你的方法,还是不行,浏览器还是不显示啊,只是一闪后,FileUpLoad里的地址没有了,但是图片没有了,前辈能不能帮忙想想,谢谢 例如我们是做企业应用的web程序,因此我们可以假设用户基于silverlight浏览应用程序。 不知道你是怎么读取的img的src支持file写法,这个不符合你的要求吗?例如<img src="file:\\C:\XX\XX.jpg" /> <input id="myfile" type="file" /><br /><img src="" alt="Image to be upload." /><div id="info"></div><script type="text/javascript">var dFile = document.getElementById('myfile');var dImg = document.getElementsByTagName('img')[0];var dInfo = document.getElementById('info');dFile.onchange = function(){if(!dFile.value.match(/.jpg|.gif|.png|.bmp/i)){alert('File type must be: .jpg, .gif, .bmp or .png !');return;}if(dFile.files){dImg.src = dFile.files[0].getAsDataURL();alert(dImg.src);}else if(dFile.value.indexOf('\\') > -1 || dFile.value.indexOf('\/') > -1){dImg.src = dFile.value;alert(dImg.src);}}</script>这个兼容IE9 FF3 遨游等等之类的 我这也没上传呀,img的src是本地文件路径 http://www.cnblogs.com/slyzly/articles/2411940.html我总结的兼容性比较好的js本地图片预览,未上传到服务器上,但是不支持Safari,兼容性不是很好,只能将就着点用了,更好的兼容性是用flash来做预览. 上传到服务器的话,我觉得第一是服务器压力增大,还会产生垃圾文件,所以就将就着用js来预览了,flash我也不会。 本地是不支持浏览的,有些FLAHS在IE低版本中,可以支持,现在普通浏览不支持,出于安全的考虑,一般都是上传到服务器,再加载到本地,进行浏览的 http://hi.baidu.com/ershouxiaowei/item/1b4b2adf69c4d5db241f4032 <script type="text/javascript" language="javascript"> function PreviewImg(imgFile) { var imgDiv = document.getElementById("ShowPic"); imgDiv.style.width = "118px"; imgDiv.style.height = "127px"; imgDiv.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod = scale)"; imgDiv.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = imgFile.value; var showPicUrl = document.getElementById("showPicUrl"); showPicUrl.innerText = imgFile.value; } </script> <body> <form id="form1" runat="server"> <input type="file" size="20" onchange="javascript:PreviewImg(this);" /> <div id="ShowPic"></div> <input id="showPicUrl" type="hidden" /> </form> </body> Refer this:http://www.cnblogs.com/insus/archive/2012/11/14/2769650.html 同学,可以使用滤镜效果 实现的,刚花了点时间写了一下:这是html代码:<div id="imgPreview" style='width:144px; height:80px;'> <img id='img_browse' title="" src="" alt="" width="144" height="80" /> </div><asp:FileUpload ID="fupSynopsisPic" onchange='PreviewImage(this)' CssClass="normaltextinputclass" Width="320" runat="server" />下面是js代码://图片本地预览 function PreviewImage(imgFile) { var filextension=imgFile.value.substring(imgFile.value.lastIndexOf("."),imgFile.value.length); filextension=filextension.toLowerCase(); if ((filextension!='.jpg')&&(filextension!='.gif')&&(filextension!='.jpeg')&&(filextension!='.png')&&(filextension!='.bmp')) { alert("对不起,系统仅支持标准格式的logo,请您调整格式后重新上传,谢谢 !"); imgFile.focus(); } else { var path; if(document.all)//IE { imgFile.select(); path = document.selection.createRange().text; document.getElementById("imgPreview").innerHTML=""; document.getElementById("imgPreview").style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled='true',sizingMethod='scale',src=\"" + path + "\")";//使用滤镜效果 } else//FF { path = imgFile.files[0].getAsDataURL(); document.getElementById("img_browse").src = path; } } } 你这个其实都已经把图片传到服务器上了,只不过没有保存而已。IE7以上的浏览器和FF都得更改浏览器设置才能取得文件的路径,所以使用滤镜的方法也有点不大现实chrome?这个真的无解,一点办法都没有 暑假的时候尝试实现这个功能,记得使用一个div+滤镜实现的。 我有一个 IE6 7 8,FF,chrome都测试过 由于公司的电脑系统都是XP IE9不知道行不行呢 求asp.net中的extjs教程 怎么样在GRIDVIEW表头第一行增加一条记录,急救答案,谢谢 gridview分页中数字链接的按钮是用的Linkbutton吧?请问怎么实现的?.......... asp.net菜问题 求两个正则表达式 一个返回错误? ajax控件在框架中为什么不好用了 Submit按钮上的客户端脚本执行后,不提交,急死了.... 显示错误:ExecuteReader 需要打开的并且可用的连接。该连接的当前状态是 Closed。 问一个DataSet问题。。 |ZYCIIS| Lambda 如何进行拆分 谢谢 有示例 两个简单的正则获取
但是,我在IE9下用你的方法,还是不行,浏览器还是不显示啊,只是一闪后,FileUpLoad里的地址没有了,但是图片没有了,前辈能不能帮忙想想,谢谢
例如我们是做企业应用的web程序,因此我们可以假设用户基于silverlight浏览应用程序。
img的src支持file写法,这个不符合你的要求吗?例如<img src="file:\\C:\XX\XX.jpg" />
<br />
<img src="" alt="Image to be upload." />
<div id="info"></div>
<script type="text/javascript">
var dFile = document.getElementById('myfile');
var dImg = document.getElementsByTagName('img')[0];
var dInfo = document.getElementById('info');
dFile.onchange = function(){
if(!dFile.value.match(/.jpg|.gif|.png|.bmp/i)){alert('File type must be: .jpg, .gif, .bmp or .png !');return;}
if(dFile.files){
dImg.src = dFile.files[0].getAsDataURL();
alert(dImg.src);
}else if(dFile.value.indexOf('\\') > -1 || dFile.value.indexOf('\/') > -1){
dImg.src = dFile.value;
alert(dImg.src);
}
}
</script>
这个兼容IE9 FF3 遨游等等之类的
我总结的兼容性比较好的js本地图片预览,未上传到服务器上,但是不支持Safari,兼容性不是很好,只能将就着点用了,更好的兼容性是用flash来做预览.
function PreviewImg(imgFile) {
var imgDiv = document.getElementById("ShowPic");
imgDiv.style.width = "118px";
imgDiv.style.height = "127px";
imgDiv.style.filter =
"progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod = scale)";
imgDiv.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = imgFile.value;
var showPicUrl = document.getElementById("showPicUrl");
showPicUrl.innerText = imgFile.value;
}
</script> <body>
<form id="form1" runat="server">
<input type="file" size="20" onchange="javascript:PreviewImg(this);" />
<div id="ShowPic"></div>
<input id="showPicUrl" type="hidden" />
</form>
</body>
Refer this:
http://www.cnblogs.com/insus/archive/2012/11/14/2769650.html
这是html代码:
<div id="imgPreview" style='width:144px; height:80px;'>
<img id='img_browse' title="" src="" alt="" width="144" height="80" />
</div>
<asp:FileUpload ID="fupSynopsisPic" onchange='PreviewImage(this)' CssClass="normaltextinputclass" Width="320" runat="server" />下面是js代码:
//图片本地预览
function PreviewImage(imgFile)
{
var filextension=imgFile.value.substring(imgFile.value.lastIndexOf("."),imgFile.value.length);
filextension=filextension.toLowerCase();
if ((filextension!='.jpg')&&(filextension!='.gif')&&(filextension!='.jpeg')&&(filextension!='.png')&&(filextension!='.bmp'))
{
alert("对不起,系统仅支持标准格式的logo,请您调整格式后重新上传,谢谢 !");
imgFile.focus();
}
else
{
var path;
if(document.all)//IE
{
imgFile.select();
path = document.selection.createRange().text;
document.getElementById("imgPreview").innerHTML="";
document.getElementById("imgPreview").style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled='true',sizingMethod='scale',src=\"" + path + "\")";//使用滤镜效果
}
else//FF
{
path = imgFile.files[0].getAsDataURL();
document.getElementById("img_browse").src = path;
}
}
}
你这个其实都已经把图片传到服务器上了,只不过没有保存而已。IE7以上的浏览器和FF都得更改浏览器设置才能取得文件的路径,所以使用滤镜的方法也有点不大现实chrome?这个真的无解,一点办法都没有