Spring mvc,uploadifive 文件上传实践(转自:https://segmentfault.com/a/1190000004503262)

简介: 1、前台页面: 引入js和css全选复制放进笔记<link type="text/css" rel="stylesheet" href="<%=basePath%>static/js/uploadifive/uploadifive.css" /><script type="text/javascript" src="<%=basePath%&g


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> 

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

目录
相关文章
|
14天前
|
XML Java 数据格式
Spring Core核心类库的功能与应用实践分析
【12月更文挑战第1天】大家好,今天我们来聊聊Spring Core这个强大的核心类库。Spring Core作为Spring框架的基础,提供了控制反转(IOC)和依赖注入(DI)等核心功能,以及企业级功能,如JNDI和定时任务等。通过本文,我们将从概述、功能点、背景、业务点、底层原理等多个方面深入剖析Spring Core,并通过多个Java示例展示其应用实践,同时指出对应实践的优缺点。
40 14
|
10天前
|
缓存 Java 数据库连接
Spring框架中的事件机制:深入理解与实践
Spring框架是一个广泛使用的Java企业级应用框架,提供了依赖注入、面向切面编程(AOP)、事务管理、Web应用程序开发等一系列功能。在Spring框架中,事件机制是一种重要的通信方式,它允许不同组件之间进行松耦合的通信,提高了应用程序的可维护性和可扩展性。本文将深入探讨Spring框架中的事件机制,包括不同类型的事件、底层原理、应用实践以及优缺点。
42 8
|
15天前
|
负载均衡 Java 开发者
深入探索Spring Cloud与Spring Boot:构建微服务架构的实践经验
深入探索Spring Cloud与Spring Boot:构建微服务架构的实践经验
59 5
|
12天前
|
XML 前端开发 安全
Spring MVC:深入理解与应用实践
Spring MVC是Spring框架提供的一个用于构建Web应用程序的Model-View-Controller(MVC)实现。它通过分离业务逻辑、数据、显示来组织代码,使得Web应用程序的开发变得更加简洁和高效。本文将从概述、功能点、背景、业务点、底层原理等多个方面深入剖析Spring MVC,并通过多个Java示例展示其应用实践,同时指出对应实践的优缺点。
39 2
|
16天前
|
安全 Java 数据安全/隐私保护
如何使用Spring Boot进行表单登录身份验证:从基础到实践
如何使用Spring Boot进行表单登录身份验证:从基础到实践
33 5
|
16天前
|
监控 Java 数据安全/隐私保护
如何用Spring Boot实现拦截器:从入门到实践
如何用Spring Boot实现拦截器:从入门到实践
36 5
|
18天前
|
前端开发 Java 开发者
Spring MVC中的请求映射:@RequestMapping注解深度解析
在Spring MVC框架中,`@RequestMapping`注解是实现请求映射的关键,它将HTTP请求映射到相应的处理器方法上。本文将深入探讨`@RequestMapping`注解的工作原理、使用方法以及最佳实践,为开发者提供一份详尽的技术干货。
50 2
|
19天前
|
Java 测试技术 数据库连接
使用Spring Boot编写测试用例:实践与最佳实践
使用Spring Boot编写测试用例:实践与最佳实践
45 0
|
1月前
|
数据采集 Java 数据安全/隐私保护
Spring Boot 3.3中的优雅实践:全局数据绑定与预处理
【10月更文挑战第22天】 在Spring Boot应用中,`@ControllerAdvice`是一个强大的工具,它允许我们在单个位置处理多个控制器的跨切面关注点,如全局数据绑定和预处理。这种方式可以大大减少重复代码,提高开发效率。本文将探讨如何在Spring Boot 3.3中使用`@ControllerAdvice`来实现全局数据绑定与预处理。
67 2
|
2月前
|
JSON 前端开发 Java
SSM:SpringMVC
本文介绍了SpringMVC的依赖配置、请求参数处理、注解开发、JSON处理、拦截器、文件上传下载以及相关注意事项。首先,需要在`pom.xml`中添加必要的依赖,包括Servlet、JSTL、Spring Web MVC等。接着,在`web.xml`中配置DispatcherServlet,并设置Spring MVC的相关配置,如组件扫描、默认Servlet处理器等。然后,通过`@RequestMapping`等注解处理请求参数,使用`@ResponseBody`返回JSON数据。此外,还介绍了如何创建和配置拦截器、文件上传下载的功能,并强调了JSP文件的放置位置,避免404错误。