日期:2014-05-19  浏览次数:20646 次

struts2 预览后上传图片

<from name="myform" action="addUser.do">
<s:textfield name="user.name" />
<s:textfield name="user.age" />

<s:file name ="myFile" label ="Image File" />
<img id="image" src="" />
<s:hidden id="imgurl" name="user.imgurl" value="" />

<s:submit>
</form>

业务:在提交action之前,在<img id="image" src="" />中预览下图片,最好是无刷新,然后再提交form,保存用户信息,
纠结了很久啦,就是弄不出来~~~
大家帮帮我,提供一份用struts2上传文件实现的代码,可以的话结合dwr实现页面无刷新预览,(问题主要在于图片预览,并将图片路径保存在s:hidden中,之后的保存用户我会的)
万分感谢啊~
要是代码多发至我邮箱(965846134@qq.com)不胜感激~

------解决方案--------------------
这个其实比较简单吧。。

楼主把上传分为两步来做:上传和提交。

上传只是把图片上传过去。。 然后通过ajax把图片的地址转发回页面,这样就可以预览了。。再点提交,就发送一个信息给后台,完成业务逻辑

问我要具体代码?不好意思,我没有。。。
------解决方案--------------------
你的预览是本地文件预览吧

用JS就可以了 应该有这种图片预览的控件

上传就不多说了

详见百度~~
------解决方案--------------------
<html> 
<head> 
<title>get file input full path</title> 
<script language='javascript'> 
function getFullPath(obj) 

if(obj) 

//ie 
if (window.navigator.userAgent.indexOf("MSIE")>=1) 

obj.select(); 
return document.selection.createRange().text; 

//firefox 
else if(window.navigator.userAgent.indexOf("Firefox")>=1) 

if(obj.files) 

return obj.files.item(0).getAsDataURL(); 

return obj.value; 

return obj.value; 


</script> 
</head> 
<body> 
<input type="file" onchange="document.getElementById('img').src=getFullPath(this);" /> 
<img id="img" /> 
</body> 
</html> 


------解决方案--------------------
这种问题思路不是太难的! 你获取到图片的路径! 然后用img的src属性显示出来! 一般都是在本地显示的,至于上传的话就不用说了吧!
------解决方案--------------------
用js直接修改img的src不就可以了吗?
------解决方案--------------------
预览应该只要设置一个图片占位,然后动态读取上传那个地方选择的路径后显示就OK了,就在本机实现(相当于即使当时掉线了网页没刷新也可以读取的吧,写个类似ontextchange这样的东西,只要选择文件路径那里改变了就去读取文件)
------解决方案--------------------
5楼的那个最经典,在本地就可以解码并显示出来。而你们说的,都是上传后再显示,上传后在显示,并不是楼主要的结果把!
------解决方案--------------------
探讨
也就是说,对用户的保存也再ImageUploadAction中进行?
我觉得这样有点小别扭,大家平时也肯定会遇到这个问题,你们一般是怎么解决的?
分开吗?