ECM
ECM
总版主
总版主
  • 社区居民
  • 忠实会员
  • 原创写手
阅读:2520亚博国际平台老虎机官网:0

uploadify + SpringMVC文件批量上传及下载

楼主#
更多 发布于:2016-01-01 22:50
周末闲得无事,就随便写写,如标题所示,玩了一下uploadfy上传组件,类似uploadfy之类的Flash上传组件有很多,如SWFUpload、Sapload、AlanXUpload等等,对比之后,我最终选择了uploadfy。
? 由于我比较喜欢用SpringMVC,相对于Struts2来说,SpringMVC更轻巧。不扯这些,还是先来上几张我一天劳动成果的效果图吧!
??

图片:07153944_IAEP.jpg



图片:07153944_Aqt7.jpg



图片:07153945_24Dh.jpg



图片:07153945_csns.jpg



图片:07153945_eidt.jpg


主要做了下使用UploadFy组件实现文件的批量上传,UploadFy是有带实时进度信息的,用户体验应该还不错,用户上传完成后跳至文件列表页面,下面的分页信息是我自定义的分页标签,上面就是一些简单的信息查询,然后每个文件都可以点击“下载”链接直接下载,删除和编辑功能没实现,但后台方法是写好了的。因为我的重点是学习使用UploadFy组件进行文件上传下载练习的,所以删除编辑就忽略了。
?? ?这个小示例程序我采用的是SpringMVC + Hibernate4完成的,项目结构图如下:

图片:07153945_qZeO.jpg



依赖的所有jar包如图:

图片:07153945_UUMy.jpg



applicationContext.xml配置:

?
?? ? ? ?
?? ?

??
?? ?
?
??
?
?


?? ?
?
?? ? ? ?
?? ? ?
?? ?

?? ? ? ?
?? ? ? ? ? ?
?? ? ? ? ? ? ? ?${hibernate.dialect}
?? ? ? ? ? ? ? ?${hibernate.show_sql}
?? ? ? ? ? ? ? ?${hibernate.format_sql}
?? ? ? ? ? ? ? ?${hibernate.hbm2ddl.auto}
?? ? ? ? ? ? ${hibernate.jdbc.batch_size}
?? ? ? ? ? ? ${hibernate.jdbc.fetch_size}
?? ? ? ? ? ? ${hibernate.connection.autocommit}
?? ? ? ? ? ?

?? ? ? ?

?? ? ? ?
?? ? ? ? ?
?? ? ? ? ? ? ?com.yida.framework.modules.po
?? ? ? ? ?

?? ? ? ? ?

?? ?

??
?? ?
??
?? ${hibernate.jdbc.driverClassName}
??

??
?? ${hibernate.jdbc.url}
??

??
?? ${hibernate.jdbc.username}
??

??
?? ${hibernate.jdbc.password}
??

?

??
?? ?
?
??
?


applicationContext-transaction.xml配置如下:

http://www.springframework.org/schema/beans"
?xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance"
?xmlns:mvc="
http://www.springframework.org/schema/mvc"
?xmlns:p="
http://www.springframework.org/schema/p"
?xmlns:context="
http://www.springframework.org/schema/context"
?xmlns:aop="
http://www.springframework.org/schema/aop"
?xmlns:tx="
http://www.springframework.org/schema/tx"
?xsi:schemaLocation="
http://www.springframework.org/schema/beans ?
?? ? ? ? ? ?
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd ?
?? ? ? ? ? ?
http://www.springframework.org/schema/context ?
?? ? ? ? ? ?
http://www.springframework.org/schema/context/spring-context-3.1.xsd ?
?? ? ? ? ? ?
http://www.springframework.org/schema/aop ?
?? ? ? ? ? ?
http://www.springframework.org/schema/aop/spring-aop-3.1.xsd ?
?? ? ? ? ? ?
http://www.springframework.org/schema/tx ?
?? ? ? ? ? ?
http://www.springframework.org/schema/tx/spring-tx-3.1.xsd ?
?? ? ? ? ? ?
http://www.springframework.org/schema/mvc ?
?? ? ? ? ? ?
http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd ?
?? ? ? ? ? ?
http://www.springframework.org/schema/context ?
?? ? ? ? ? ?
http://www.springframework.org/schema/context/spring-context-3.1.xsd">


?
??
??
??
?


?
??
?? ?
?


?
??
??
??
??
??
??
??
??
??
??
??
??

?

?


?
??
??
?



SpringMVC-Servlet.xml配置如下:

http://www.springframework.org/schema/beans"
?xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance"
?xmlns:mvc="
http://www.springframework.org/schema/mvc"
?xmlns:p="
http://www.springframework.org/schema/p"
?xmlns:context="
http://www.springframework.org/schema/context"
?xmlns:aop="
http://www.springframework.org/schema/aop"
?xmlns:tx="
http://www.springframework.org/schema/tx"
?xsi:schemaLocation="
http://www.springframework.org/schema/beans ?
?? ? ? ? ? ?
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd ?
?? ? ? ? ? ?
http://www.springframework.org/schema/context ?
?? ? ? ? ? ?
http://www.springframework.org/schema/context/spring-context-3.1.xsd ?
?? ? ? ? ? ?
http://www.springframework.org/schema/aop ?
?? ? ? ? ? ?
http://www.springframework.org/schema/aop/spring-aop-3.1.xsd ?
?? ? ? ? ? ?
http://www.springframework.org/schema/tx ?
?? ? ? ? ? ?
http://www.springframework.org/schema/tx/spring-tx-3.1.xsd ?
?? ? ? ? ? ?
http://www.springframework.org/schema/mvc ?
?? ? ? ? ? ?
http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd ?
?? ? ? ? ? ?
http://www.springframework.org/schema/context ?
?? ? ? ? ? ?
http://www.springframework.org/schema/context/spring-context-3.1.xsd">


?
?? ?
??
?? ? ? ?
?? ?

?



?
??
??
??
??

?


?
??
?


?
??
??
??
??
??
?? ?
?? ?
?? ?
??

??

??
??
?? ?
?? ?
??

??

??
??
?? ?
?? ?
??

??

?


?


?
??
?? text/html;charset=UTF-8
??

?


?
??
??
??

?


?
??
?? /jsp/
??

??
?? .jsp
??

??
?? org.springframework.web.servlet.view.JstlView
??

??
??
?? 1
??

?


?
??
?? .ftl
??

??
?? freemarker
??

??
?? true
??

??
?? 2
??

??
?? org.springframework.web.servlet.view.freemarker.FreeMarkerView
??

??
??
??
??
??
?


?
??
?? /freemarker/
??

??
??
?? ?10000000
?? ?zh_CN
?? ?UTF-8
?? ?UTF-8
?? ?true,false
?? ?yyyy-MM-dd
?? ?yyyy-MM-dd
?? ?#.##
?? ?true
?? ?true
??

??

?


?


?


?


?


?


?


?
??
??
?? ? ?UTF-8
??

??
??
?? 20971520
??

??
?? 4096
??

?


?


?


?
??
??
?? ?application/json;charset=UTF-8
?? ?text/html;charset=UTF-8
??

??

?


?


?
?? ? ? ?
?? ? ? ? ? ? ?
?? ? ? ? ? ? ? ? ?
?? ? ? ? ? ? ? ? ? ? ? ?error
?? ? ? ? ? ? ? ?

?? ? ? ? ? ?

?? ? ? ?

?? ?


?
public class FileController extends BaseController {
?
?
?@RequestMapping(value="/toUploadFile.do",method=RequestMethod.GET)
?public String toUploadFile(){
??return "upload";
?}
?
?
?@RequestMapping(value="/uploadFile.do",method=RequestMethod.POST)
?public String uploadFile(MultipartHttpServletRequest request,
?? @ModelAttribute("fileModel")FileModel fileModel,ModelMap modelMap){
??String realPath = request.getRealPath("/" + Globarle.UPLOAD_DIR);
??File file = new File();
??file.setServerPath(realPath);
??boolean uploadSuccess = getService().addFile(file, request.getFiles("file"));
??String message = uploadSuccess?"上传成功!" : "上传失败!";
??return "list";
?}
?
?
?@RequestMapping(value="/updateFile.do",method=RequestMethod.POST)
?public String updateFile(@ModelAttribute("fileModel")FileModel fileModel,ModelMap modelMap){
??File file = new File();
??MyBeanUtils.copyProperties(file, fileModel);
??int result = getService().updateFile(file);
??String message = (result == -1)? "更新失败!" : "更新成功!";
??modelMap.put("msg", message);
??return "forward:file/toUpdateFile.do";
?}
?
?
?@RequestMapping(value="/toUpdateFile.do",method=RequestMethod.GET)
?public String toUpdateFile(@ModelAttribute("fileModel")FileModel fileModel,ModelMap map){
??File file = getService().findFileById(fileModel.getId());
??map.put("file",file);
??return "edit";
?}
?
?
?@RequestMapping(value="/batchDeleteFile.do",method=RequestMethod.GET)
?public String batchDeleteFile(HttpServletRequest request,
??@ModelAttribute("fileModel")FileModel fileModel,ModelMap modelMap){
??int result = getService().batchDeleteFile(fileModel.getIdArray(), request.getRealPath("/" + Globarle.UPLOAD_DIR));
??String message = (result == -1)? "批量删除失败!" : "批量删除成功!";
??modelMap.put("msg", message);
??return "forward:file/listFile.do";
?}
?
?
?@RequestMapping(value="/downloadFile.do",method=RequestMethod.GET)
?@ResponseBody
?public DownloadHelper downloadFile(HttpServletRequest request,
??@ModelAttribute("fileModel")FileModel fileModel){
??//boolean isSuccess = false;
??String realPath = request.getRealPath("/" + Globarle.UPLOAD_DIR);
??File file = getService().findFileById(fileModel.getId());
??String fileName = realPath + "\" + file.getFileName();
??DownloadHelper downloadHelper = new DownloadHelper(); ?
??downloadHelper.setFile(new java.io.File(fileName)); ?
?? ? //指定下载文件名 ?
??//downloadHelper.setFileName(file.getFileName()); ?
??//downloadHelper.setCharset(Charset.forName("UTF-8"));
??return downloadHelper;
?}
?
?
?@RequestMapping(value="/listFile.do")
?public String list(@ModelAttribute("fileModel")FileModel fileModel,ModelMap map){
??PageData pageData = getService().findFilesForPage(fileModel);
??map.put("pageData", pageData);
??return "list";
?}
}

?

?

?

?

?

?

?

异常中心网是一家专门收集整理程序员编程过程中遇到的常见异常(exception)以及各种异常问答中心的网站。异常中心网旨在,减少程序员在编码遇到异常,处理各种异常时间和痛苦,让程序员能更愉快的、快速的定位异常并查找对应的异常解决方案。异常中心网诚心打造最完美的编程社区为程序员用户服务,努力成为最好的程序员乐园程序员社区程序异常中心程序bug中心异常问答中心

?

喜欢0 评分0
游客

返回顶部