浏览 197 次
|
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
时间:2008-04-22 关键字: jquery springmvc 多文件上传
jquery的插件使用的是jQuery Multiple File Upload Plugin v1.27 地址 http://jquery.com/plugins/project/MultiFile/
需要修改源代码,在js的282行
slave.name = (slave.name || $(MASTER).attr('name') || 'file');// + (slave.i>0?slave.i:''); // same name as master element
去掉注释,让input name就生成不同名称了,不然post上来的文件数据都是没有名字的. 页面端代码:
<script type="text/javascript">
<!--
$().ready(function() {
$('#houseMaps').MultiFile({
accept:'gif|jpg|png|jpeg|bmp', max:6, STRING: {
remove:'删除',
selected:'Selecionado: $file',
denied:'不支持上传该文件类型 $ext!'
}
});
});
//-->
</script>
<form method="post" action="xxx.do?method=uploader" enctype="multipart/form-data">
<input type="file" id="houseMaps" name="houseMaps"/>
</form>
spring mvc端:
public ModelAndView uploader(HttpServletRequest request,HttpServletResponse response,UploadFormBean ufb) throws ServletRequestBindingException, HouseImgUploadException, IOException{
MultipartFile styleMap = ufb.getStyleMap();
Set<MultipartFile> mfs = getFileSet(request);
for(MultipartFile mf : mfs){
String imgPath = uploadFileAndCallback(mf);
//拿到的imgPath就是图片的相对于contextPath的存储路径了
}
return new ModelAndView("xxx");
}
public Set<MultipartFile> getFileSet(HttpServletRequest request) {
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
Set<MultipartFile> fileset = new LinkedHashSet<MultipartFile>();
for (Iterator it = multipartRequest.getFileNames(); it.hasNext();) {
String key = (String)it.next();
MultipartFile file = multipartRequest.getFile(key);
if (file.getOriginalFilename().length() > 0) {
fileset.add(file);
}
}
return fileset;
}
private String uploadFileAndCallback(MultipartFile file) throws HouseImgUploadException, IOException {
if(validateFile(file)){
String filename = file.getOriginalFilename();
String extName = filename.substring(filename.lastIndexOf(".")).toLowerCase();
String lastFileName = System.currentTimeMillis()+CalendarUtil.getRadomValue()+extName;
//图片存储的相对路径
String path = sp+resource_subpath_name+sp+houseId+sp;
String fileFullPath = getServletContext().getRealPath(resource_name)+path+lastFileName;
FileCopyUtils.copy(file.getBytes(),new File(fileFullPath));
return "/"+resource_name+"/"+resource_subpath_name+"/"+lastFileName;
}else{
throw new HouseImgUploadException("上传文件不符合规格");
}
}
private boolean validateFile(MultipartFile file) {
if(file.getSize()<0 || file.getSize() > 2000000)
return false;
String filename = file.getOriginalFilename();
String extName = filename.substring(filename.lastIndexOf(".")).toLowerCase();
if(extName.equals(".jpg") || extName.equals(".gif") ||
extName.equals(".png") || extName.equals(".bmp") || extName.equals(".jpeg")){
return true;
}else{
return false;
}
}
UploadFormBean:
public class UploadFormBean {
private MultipartFile styleMap;
public MultipartFile getStyleMap() {
return styleMap;
}
public void setStyleMap(MultipartFile styleMap) {
this.styleMap = styleMap;
}
}
声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
| 返回顶楼 | |


