在做一个项目的修改工作时,遇到了这样的问题:我需要上传照片,但是无法在后台获取到图片的URL,这个该怎么弄呢?求大家帮帮忙~
上面那个图片的名称:******.jpg是点击浏览后的选则的要上传的图片的名
JSP中的代码如下:
班级图标                                               
                                                               </th>
<td>
<div id="preview_wrapper">
<div id="preview_fake">
<img id="preview"
src="<%=basePath%><s:property value="group.iconUrl" />"
width="100px" height="100px" />
</div>
</div>
<div>
<s:file id="uploadFile" name="uploadFile"
onfocus="hideFocus=true;"
onchange="javascript:PreviewImage(); "  >
</s:file>
 在这里怎么获取到图片的名字,并把它传到后台呢?
Action中的代码如下:
public String update() throws Exception {
group.setGroupId(groupKey);
if(getUploadFile() != null){
imageFileName = "";
String dirName = ServletActionContext.getServletContext().getRealPath("/")+"icon/";
imageFileName = dirName+uploadFilename;
CommonUtil.copy(this.getUploadFile(), imageFileName,dirName);
group.setIconUrl("icon/"+uploadFilename );
System.out.println("重新打出当前图片的URL:"+group.getIconUrl());
}
getService().updateClass(group);
return group();
}
这个Action类中的成员变量的get,set方法已给出~用的struts+spring文件上传

解决方案 »

  1.   

    如果你把图片流传到后台,转成File,是可以获得原始文件名称的,不用通过传图片名称的方式……
      

  2.   

    你可以参考一下这个http://developer.51cto.com/art/200907/133797.htm……主要是通过servlet
      

  3.   

    http://download.csdn.net/detail/s478853630/4360825
    实现无刷新上传文件的功能,jar齐全,下载后部署即可访问,看到上传效果。
    如果是上传图片,可以在浏览器中即时预览本地图片,如果图片很大,div会自动出现滚动条,不会把页面撑坏,上传的过程中是有进度条的,批量上传也有进度条,效果还算比较美观的!基本上都是好评哦,lz不妨试一下!
      

  4.   


    嗯~谢谢,找到问题所在了!谢谢了,servlet是最基本的办法~什么时候都好用,但是现在开发基本都放弃这些最基本的东西了,各种框架弄出来,感觉反而有时候是更复杂了。。
      

  5.   

    在这里怎么获取到图片的名字,并把它传到后台呢?  这个有N多方法去做,,但是后台做上传应该获取的是流,获取到流了就可以拿到name  ,如果拿不到流 ,拿到name 也是什么都做不了。。