问题描述
<tr><tdclass="t1">封面</td><tdclass="t2"style="height:150px;"><asp:ImageID="Image1"runat="server"/><asp:FileUploadID="fudIamge"runat="server"/></td></tr>在FileUpload选择一张图片之后马上显示在Image中(先不上传),据说在IE8中是不太可能实现,麻烦给个比较好理解的解决方案!谢谢*……
解决方案
解决方案二:
上传并预览
解决方案三:
<asp:FileUploadID="fudIamge"runat="server"/>加上onchange="GetImg(this);"jsfunctionGetImg(o){img=document.getElementById(Image1);if(!/.((jpg)|(bmp)|(gif)|(png))$/ig.test(o.value)){alert('只能上传jpg,bmp,gif,png格式图片!');o.outerHTML=o.outerHTML;//清空选择文件}else{if($(".RoomImgHave,.ItemImgHave,.TypeImgHave,.imgHaved").length==10){o.outerHTML=o.outerHTML;alert("图片张数已达到最大限制!");returnfalse;}img.style.width="130px";img.style.height="90px";img.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)";img.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src=o.value;}}
解决方案四:
if($(".RoomImgHave,.ItemImgHave,.TypeImgHave,.imgHaved").length==10){o.outerHTML=o.outerHTML;alert("图片张数已达到最大限制!");returnfalse;}
这个不要,从我以前的项目里复制出来的,没注意,忘了删了。
解决方案五:
浏览器的安全原因,这个做不到。。一般都是上传到一个临时文件夹,再预览。。。
解决方案六:
//JScript文件varSleepTotal=0;functionSleepImg(imgObjId,sizeObjId){if(SleepTotal>10)returnfalse;varview=document.getElementById(imgObjId);varisize=document.getElementById(sizeObjId);varimgsrc=document.getElementById(imgObjId).src;if(view.readyState=="complete"){if(view.fileSize>1024*1024*2){view.src=imgsrc;alert(view.src);returnfalse;}isize.innerHTML="(大小:"+Math.ceil(view.fileSize/1024)+"K)";}elsesetTimeout("SleepImg('"+imgObjId+"','"+sizeObjId+"')",500);}functionShowImg(obj,imgObjId,sizeObjId){if(obj.value=="")returnfalse;varimgsrc=document.getElementById(imgObjId).src;varview=document.getElementById(imgObjId);if(obj.files){view.src=obj.files[0].getAsDataURL();SetFileSize(obj.files[0],sizeObjId);}else{view.src=obj.value;if(obj.value.search(/.jpg|.jpeg|.bmp|.gif|.emf|.wmf|.xbm|.png$/i)==-1){alert("文件格式不正确");view.src=imgsrc;returnfalse;}varisize=document.getElementById(sizeObjId);if(view.readyState=="complete"){if(view.fileSize>1024*1024*2){alert("该图片超过2M");alert(view.src);returnfalse;}isize.innerHTML="(大小:"+Math.ceil(view.fileSize/1024)+"K)";}elsesetTimeout("SleepImg('"+imgObjId+"','"+sizeObjId+"')",500);}}functionSetFileSize(file,size){document.getElementById(size).innerHTML="(大小:"+Math.ceil(file.fileSize/1024)+"K)";}
将上面js保存到js文件并引用到页面后,调用如下:<asp:ImageID="Image1"runat="server"/><asp:FileUploadID="fudIamge"runat="server"onchange="ShowImg(this,'fudIamge','Image1')"/>
如果id错误那就需要使用<%=Image1.ClientID%>来代替Image1,fudIamge同理
解决方案七:
完美的上传预览还是flash好--
解决方案八:
引用1楼的回复:
http://www.360doc.com/content/10/1027/12/3883221_64411209.shtml上传并预览
Mark
解决方案九:
这个我做过。后来觉得用着觉得挺烦的。因为浏览器的情况太多了。甚至火狐浏览器不同的版本都会有问题。。如果还是想弄。就搜一下图片上传预览。有现成的js
解决方案十:
引用1楼的回复:
http://www.360doc.com/content/10/1027/12/3883221_64411209.shtml上传并预览
这个我看过了你去试试下
解决方案十一:
可以用JQ图片上传Uploadify。可以去瞧瞧http://www.uploadify.com/演示地址:http://www.uploadify.com/demos/
解决方案十二:
http://apps.hi.baidu.com/share/detail/9247525在给你个简介地址
解决方案十三:
我以前遇到这个问题,也查过资料,没有解决啊。如果有好方法,分享
解决方案十四:
引用4楼的回复:
浏览器的安全原因,这个做不到。。一般都是上传到一个临时文件夹,再预览。。。
+1可以用iframe,设置其name,formtarget到设置的name用来模拟无刷新不然就用flashswfupload不错。或者看看其他这些
解决方案十五:
引用1楼的回复:
http://www.360doc.com/content/10/1027/12/3883221_64411209.shtml上传并预览
UpUp
解决方案:
该回复于2012-03-30 13:42:42被版主删除
解决方案:
http://www.cnblogs.com/slyzly/articles/2411940.html网上很多都不兼容,我最近新做的,兼容多种浏览器
解决方案:
<asp:FileUploadID="fuHeadPhoto"runat="server"onchange="ShowImage(this)"size="20"/>
解决方案:
对,可以先放到临时文件夹,每次操作后,上传提交图片后清空临时文件夹引用4楼的回复:
浏览器的安全原因,这个做不到。。一般都是上传到一个临时文件夹,再预览。。。
解决方案:
在上传空间onchange事件里把值赋给<img>
解决方案:
正解引用4楼的回复:
浏览器的安全原因,这个做不到。。一般都是上传到一个临时文件夹,再预览。。。