问题描述
- 用plupload上传图片,和struts2结合,怎么获取上传成功后action返回的数据
-
也就是在plupload中怎么获取后台传过来的数据,是json数据,再简单点说,怎么写
plupload中的回调函数
解决方案
//使用AJAX上传文件,支持多文件上传,已与Plupload2.1.2插件测试通过
@RequestMapping("/ajaxLoadFile")
@ResponseBody
public Object ajaxLoadFile(HttpServletRequest req,HttpServletResponse res) throws IllegalStateException, IOException{
CommonsMultipartResolver cmr = new CommonsMultipartResolver(req.getSession().getServletContext());
Map hm = new HashMap();
//request中是否是Multipart类型数据,如果不是就不处理,是的话就转化成SPRINGMVC中的Mulitipart Request
if(cmr.isMultipart(req)){
MultipartHttpServletRequest mreq = (MultipartHttpServletRequest)req;
//迭代所有文件
Iterator it = mreq.getFileNames();
while(it.hasNext()){
//使用SpringMVC中的FILE
MultipartFile file = mreq.getFile(it.next());
if(!file.isEmpty()){
System.out.println(file.getOriginalFilename());
String fileName = "Upload_"+file.getOriginalFilename();
String path = "D:/" + fileName;
File localFile = new File(path);
//使用SpringMVC中的Multipart File来存储文件
file.transferTo(localFile);
hm.put("msg", file.getOriginalFilename()+"上传成功!");
}
}
}
return hm;
}
这个是SPRINGMVC的,和STRUTS2的差不多,你可以参考一下
1、req和res两个参数可以在Struts2中的Context中获取,这个你应该知道,毕竟我多年不用STRUTS了
2、我这里返回的是一个MAP,你写的话肯定是返回一个字符串,修改STRUTS2中的ResultMap,加一个AJAX的,就可以了