图片上传时预览的问题???????????? 产品上传图片,在新增产品时,图片的地方默认有一张图片,当有选择图片时,把默认的图片替换掉并显示出现在的图片,此时图片并没有上传,点击保存后才上传!要怎么做啊,ie8里的,最好通用些。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 参考如文所说 opera safari chrome 不行 。ie8是没问题的 。 //得到本地图片路径 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; } } 这样可以得到本地图片路径,可我直接在onchange事件里把路径传给img的src它不行啊,没有显示,貌似路径中的空格都成%20啦! <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"> <title>无标题页</title> <script type="text/javascript"> var loadImage = function(ele){ var picPath = getPath(ele); var image = new Image(); document.getElementById("imgDiv").innerHTML = "<img width='100px' height='100px' id='aPic' src='"+picPath+"'>"; } var getPath = function(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){ //firefox if(obj.files){ return obj.files.item(0).getAsDataURL(); } return obj.value; } return obj.value; } } </script></head><body> <input type="file" name="uploadFile" id="uploadFile" onchange="loadImage(this);" /> <div id="imgDiv"> <img src="http://avatar.profile.csdn.net/5/A/B/2_lihuan2008a.jpg" /> </div></body></html>试试 。 可以用JS把file:///d:/你的文件夹/图片.jpg这个地址去替代图片的SRC,就可以了。 zell419非常感谢你的回答,这段代码存为html运行是没有问题的,当我换成jsp页面,并且放到tomcat下时,图片不能正常显示,右键查看属性里是协议、类型、创建时间、修改时间不可用,不知道怎么回事哦! <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>我的圈子-相册</title> <script type="text/javascript" src="/js/imgPreview/CJL.0.1.min.js"></script> <script type="text/javascript" src="/js/imgPreview/QuickUpload.js"></script> <script type="text/javascript" src="/js/imgPreview/ImagePreviewd.js"></script> </head> <body> <pubTags:head /> <pubTags:left /> <div id="content"> <pubTags:menu bmenu="ste-photo" amenu="steward"/> <div id="main"> <div class="phbj" class="perview"> <form action="lookPagesaveprivacyphoto.do" method="post" enctype="multipart/form-data" class="com.raxtone.community.img.web.action.LookPageAction" name = "theform" onsubmit="return CheckPreview(this)"> <font color="red"><s:property value="message"/></font> <ul class="phleft"> <li> <img src="/images/upfload.gif" /> 上传照片并预览 </li> <li> <input id="idFile" name="pic" type="file" class="seclet" /> </li> <li> <input type="submit" value="" class="tijiao" /> </li> <li> <input type="button" value="返回" class="tijiao" onclick="window.history.go(-1)"/> </li> <li> 请上传JPG,JPEG, GIF,PNG或BMP文件,每个文件大小可以到2M </li> </ul> <div class="phright"> <img id="idImg" /> </div> </form><script>var ip = new ImagePreview( $$("idFile"),$$("idImg") , { maxWidth: 200, maxHeight: 200, action: "viewImg.jsp",onCheck: CheckPreview});ip.img.src = ImagePreview.TRANSPARENT;ip.file.onchange = function(){ ip.preview(); };//检测程序var exts = "jpg|gif|bmp|png|jpeg", paths = "|";function CheckPreview(){ var value = this.file.value, check = true; if ( !value ) { check = false; alert("请先选择文件!"); } else if ( !RegExp( "\.(?:" + exts + ")$$", "i" ).test(value) ) { check = false; alert("只能上传以下类型:" + exts); if (!window.addEventListener) { document.getElementById("idFile").select(); document.execCommand('Delete'); }else { document.getElementById("idFile").value = ""; } } else if ( paths.indexOf( "|" + value + "|" ) >= 0 ) { check = false; alert("已经有相同文件!"); } return check;}</script> </body></html> 求这个链接的效果 我这样写对吗,简单js问题,可是测试结果不对,不知道那里错了 js+debugger+ie7 = 串位置? 请大家帮忙给一个输入框验证函数,onkeyup时只允许输入数字和大小写字母 请教下着个js是什么意思 请问如何动态赋值到<%=strI%>price? 这个问题到现在我还没解决请大家帮帮我!! 请教cancelBubble是干什么用的??? 能不能用鼠标取得当前所指的对象作为一个变量传到另一个页面? 求一个js正则表达式 js或jquery表情在线编辑器 这是一段菜单的代码,请帮忙加注释
如文所说 opera safari chrome 不行 。
ie8是没问题的 。
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;
}
} 这样可以得到本地图片路径,可我直接在onchange事件里把路径传给img的src它不行啊,没有显示,貌似路径中的空格都成%20啦!
<head runat="server">
<title>无标题页</title>
<script type="text/javascript">
var loadImage = function(ele){
var picPath = getPath(ele);
var image = new Image();
document.getElementById("imgDiv").innerHTML = "<img width='100px' height='100px' id='aPic' src='"+picPath+"'>";
}
var getPath = function(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){ //firefox
if(obj.files){
return obj.files.item(0).getAsDataURL();
}
return obj.value;
}
return obj.value;
}
}
</script>
</head>
<body>
<input type="file" name="uploadFile" id="uploadFile" onchange="loadImage(this);" />
<div id="imgDiv">
<img src="http://avatar.profile.csdn.net/5/A/B/2_lihuan2008a.jpg" />
</div>
</body>
</html>试试 。
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>我的圈子-相册</title>
<script type="text/javascript" src="/js/imgPreview/CJL.0.1.min.js"></script>
<script type="text/javascript" src="/js/imgPreview/QuickUpload.js"></script>
<script type="text/javascript" src="/js/imgPreview/ImagePreviewd.js"></script>
</head> <body>
<pubTags:head />
<pubTags:left />
<div id="content">
<pubTags:menu bmenu="ste-photo" amenu="steward"/>
<div id="main">
<div class="phbj" class="perview">
<form action="lookPagesaveprivacyphoto.do" method="post"
enctype="multipart/form-data"
class="com.raxtone.community.img.web.action.LookPageAction" name = "theform" onsubmit="return CheckPreview(this)">
<font color="red"><s:property value="message"/></font>
<ul class="phleft">
<li>
<img src="/images/upfload.gif" />
上传照片并预览
</li>
<li>
<input id="idFile" name="pic" type="file" class="seclet" />
</li>
<li>
<input type="submit" value="" class="tijiao" />
</li>
<li>
<input type="button" value="返回" class="tijiao" onclick="window.history.go(-1)"/>
</li>
<li>
请上传JPG,JPEG, GIF,PNG或BMP文件,每个文件大小可以到2M
</li>
</ul>
<div class="phright">
<img id="idImg" />
</div>
</form><script>var ip = new ImagePreview( $$("idFile"),$$("idImg") , {
maxWidth: 200, maxHeight: 200, action: "viewImg.jsp",onCheck: CheckPreview
});
ip.img.src = ImagePreview.TRANSPARENT;
ip.file.onchange = function(){ ip.preview(); };
//检测程序
var exts = "jpg|gif|bmp|png|jpeg", paths = "|";
function CheckPreview(){
var value = this.file.value, check = true;
if ( !value ) {
check = false; alert("请先选择文件!");
} else if ( !RegExp( "\.(?:" + exts + ")$$", "i" ).test(value) ) {
check = false;
alert("只能上传以下类型:" + exts);
if (!window.addEventListener) {
document.getElementById("idFile").select();
document.execCommand('Delete');
}else {
document.getElementById("idFile").value = "";
}
} else if ( paths.indexOf( "|" + value + "|" ) >= 0 ) {
check = false; alert("已经有相同文件!");
}
return check;
}</script> </body>
</html>