1、前台页面: 引入js和css

全选复制放进笔记
<link type="text/css" rel="stylesheet" href="<%=basePath%>static/js/uploadifive/uploadifive.css" /> <script type="text/javascript" src="<%=basePath%>static/js/uploadifive/jquery.min.js"></script> <script type="text/javascript" src="<%=basePath%>static/js/uploadifive/jquery.uploadifive.min.js"></script>

2、控件初始化:

全选复制放进笔记
<script type="text/javascript"> $(function() { $('#file_upload').uploadifive({ 'auto' : false, 'buttonClass': 'btn btn-primary', 'buttonText': "选择文件", 'queueID' : 'uploadqueue', 'uploadScript' : '/tools/uploadfiles', 'onUploadComplete' : function(file, data) { console.log(data); } }); }); </script>

3、body页面内容:

全选复制放进笔记
<div id="uploadqueue"> <input id="file_upload" name="file_upload" type="file" multiple="true"> <a href="javascript:$('#file_upload').uploadifive('upload')">上传文件</a> | <a href="javascript:$('#file_upload').uploadifive('stop')">停止上传!</a> </div>

4、后台Controller:

全选复制放进笔记
@RequestMapping(value = "/uploadfiles") @ResponseBody public JSONArray uploadFile(HttpServletRequest request){ Calendar calendar=Calendar.getInstance(); List<String> filePathList = new ArrayList<String>(); String filePath= SysConstant.UPLOADPATH; String filePathUrl=SysConstant.UPLOADPATHURL+"/"+calendar.get(Calendar.YEAR)+calendar.get(Calendar.MONTH); filePath=filePath+File.separatorChar+calendar.get(Calendar.YEAR)+calendar.get(Calendar.MONTH); try { filePathList = FileUploadUtil.uploadFile(request, filePath,filePathUrl); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch(Exception ex){ ex.printStackTrace(); } if(filePathList.size() == 0){ //return "系统错误"; } return JSONArray.fromObject(filePathList); }

5、上传类FileUploadUtil.java

全选复制放进笔记
public class FileUploadUtil { private static final Logger log = LoggerFactory.getLogger(FileUploadUtil.class); public static List<String> uploadFile(HttpServletRequest request, String filePath,String filePathUrl) throws FileNotFoundException { List<String> filePathList = new ArrayList<String>(); MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; Map<String, MultipartFile> fileMap = multipartRequest.getFileMap(); String fileName = null; for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) { MultipartFile mf = entity.getValue(); fileName = mf.getOriginalFilename(); String newfilepath; newfilepath = filePath + File.separatorChar + fileName; System.out.println("newfilepath=" + newfilepath); File dest = new File(filePath); if (!dest.exists()) { dest.mkdirs(); } File uploadFile = new File(newfilepath); if (uploadFile.exists()) { uploadFile.delete(); } try { log.info("start upload file: " + fileName); FileCopyUtils.copy(mf.getBytes(), uploadFile); } catch (IOException e) { // TODO Auto-generated catch block // e.printStackTrace(); log.info("upload failed. filename: " + fileName + e.getMessage()); return null; } filePathList.add(filePathUrl+"/"+fileName); } return filePathList; } }

6、配置spring-mvc.xml文件:

全选复制放进笔记
<!-- 文件上传表单的视图解析器 --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!-- set the max upload size100MB --> <property name="maxUploadSize"> <value>104857600</value> </property> <property name="maxInMemorySize"> <value>4096</value> </property> </bean>

7、需要增加的jar文件:

全选复制放进笔记
<dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.1</version> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.4</version> </dependency>

总结:这次上传花了一点时间,遇到几个小问题。所以留下来供大家参考。

Spring mvc,uploadifive 文件上传实践(转自:https://segmentfault.com/a/1190000004503262)的更多相关文章

  1. Spring MVC实现文件上传

    基础准备: Spring MVC为文件上传提供了直接支持,这种支持来自于MultipartResolver.Spring使用Jakarta Commons FileUpload技术实现了一个Multi ...

  2. Spring MVC的文件上传

    1.文件上传 文件上传是项目开发中常用的功能.为了能上传文件,必须将表单的method设置为POST,并将enctype设置为multipart/form-data.只有在这种情况下,浏览器才会把用户 ...

  3. Spring MVC的文件上传和下载

    简介: Spring MVC为文件上传提供了直接的支持,这种支持使用即插即用的MultipartResolver实现的.Spring MVC 使用Apache Commons FileUpload技术 ...

  4. 【Spring学习笔记-MVC-13】Spring MVC之文件上传

    作者:ssslinppp       1. 摘要 Spring MVC为文件上传提供了最直接的支持,这种支持是通过即插即用的MultipartResolve实现的.Spring使用Jakarta Co ...

  5. spring mvc ajaxfileupload文件上传返回json下载问题

    问题:使用spring mvc ajaxfileupload 文件上传在ie8下会提示json下载问题 解决方案如下: 服务器代码: @RequestMapping(value = "/ad ...

  6. 0062 Spring MVC的文件上传与下载--MultipartFile--ResponseEntity

    文件上传功能在网页中见的太多了,比如上传照片作为头像.上传Excel文档导入数据等 先写个上传文件的html <!DOCTYPE html> <html> <head&g ...

  7. Java Web 学习(8) —— Spring MVC 之文件上传与下载

    Spring MVC 之文件上传与下载 上传文件 表单: <form action="upload" enctype="multipart/form-data&qu ...

  8. Spring MVC-学习笔记(5)spring MVC的文件上传、下载、拦截器

    1.文件上传.      spring MVC为文件上传提供了直接的支持,这种支持是即插即用的MultipartResolver(多部分解析器)实现的.spring MVC使用Apache Commo ...

  9. 基于Spring MVC的文件上传和下载功能的实现

    配置文件中配置扫描包,以便创建各个类的bean对象 <context:component-scan base-package="com.neuedu.spring_mvc"& ...

随机推荐

  1. css3部分整理

    1.css弹性盒子属性 父级元素属性的设置 #father{ width: 800px; height: 300px; background-color: darkgray; /*定义父级元素为弹性元 ...

  2. 手把手教你全家桶之React(一)

    前言 最近项目用到react,其实前年我就开始接触react,时光匆匆,一直没有时间整理下来(太懒啦)!如今再次用到,称工作间隙,对全家桶做一次总结,项目源码地址.废话不多说,上码. 创建一个文件目录 ...

  3. 项目实战15.2—企业级堡垒机 jumpserver快速入门

    必备条件 硬件条件 ① 一台安装好 Jumpserver 系统的可用主机(堡垒机) ② 一台或多台可用的 Linux.Windows资产设备(被管理的资产) 服务条件 (1)coco服务 ① 鉴于心态 ...

  4. SpringMVC 教程 - Handler Method

    原文链接:https://www.codemore.top/cates/Backend/post/2018-04-21/spring-mvc-handler-methods 由注解@RequestMa ...

  5. Dynamics 365 Web Api之基于single-valued navigation property的filter查询

    本篇要讲的是dynamics 新版本中web api的一个改进功能,虽然改进的很有限,但至少是改进了. 举个例子,我们现在知道联系人的名字vic,我们想找出客户记录中主要联系人名字为vic的所有客户, ...

  6. RDO Stack: Install newton in the dashboard can't create images

    Issue: When you want to create an image in RDO stack newton version, you may encounter following err ...

  7. Swift基础之自定义PUSH和POP跳转动画

    之前用OC代码写过PUSH和POP的转场动画,闲来无事,将其转换成Swift语言,希望对大家有帮助,转载请注明.... 如何实现PUSH和POP的转场动画? 首先,创建一个NSObject的类,分别用 ...

  8. 高性能的Redis代理TwemProxy

    TwemProxy是一个Redis的中间件代理,具有很多有用的功能,可以暂时替代一部分Redis Cluster的功能: ²  支持和6479.之后相应地,配置好两个Redis实例并启动.现在就可以启 ...

  9. FORM开发两种方式实现动态LIST

    方法一:常规的,也是网上比较常见的 1.将目标ITEM的子类信息设置为List,不需要添加列表中元素,不需要初始值. 2.新建一个Procedure,代码如下: PROCEDURE basis_lis ...

  10. RxJava(九)zip操作符在Android中的实际使用场景

    欢迎转载,转载请标明出处: http://blog.csdn.net/johnny901114/article/details/51614927 本文出自:[余志强的博客] 一.zip操作符概述 官方 ...