1. 准备工作
1.1 搭建完成maven +ssm 项目
参考: https://my.oschina.net/springMVCAndspring/blog/1817609
1.2 在pom.xml中添加jar
<!-- 11.文件上传 -->
<!-- 第一个--> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.6</version> </dependency> <!-- 第二个 --> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.1</version>1.3 配置图片上传 MultipartResolver 用于处理文件上传
<!-- 4.2 配置图片上传 MultipartResolver 用于处理文件上传 只有在上传文件的时候才使用 -->
<bean name="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="defaultEncoding" value="UTF-8"></property>2. 编码
2.1 前端页面
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <h2>文件上传</h2> <form action="${pageContext.request.contextPath }/uploadTest.action" enctype="multipart/form-data" method="post"> <table> <tr> <td>文件描述:</td> <td><input type="text" name="description"></td> </tr> <tr> <td>请选择文件:</td> <td><input type="file" name="file"></td> </tr> <tr> <td><input type="submit" value="上传"></td> </tr> </table> </form> </body> </html>2.2 后台
/**
* 文件上传 * request * description * file * */ @RequestMapping(value="/uploadTest.action") public String uploadTest(HttpServletRequest request,@RequestParam("description") String description, @RequestParam("file") MultipartFile file)throws Exception{ System.out.println(description); //如果文件不为空,写入上传路径 if(!file.isEmpty()) { //上传文件路径 //指定 保存到项目文件 下面 // String path = request.getServletContext().getRealPath("\\D:\\img");// The method getDispatcherType() is undefined for the type HttpServletRequest pom.xml 8.2 servlet api 版本低了 String path ="D:\\img";//保存到计算机的其他盘符 比如这里是保存到本服务器的 d盘 img目录下 //上传文件名 String filename = file.getOriginalFilename(); File filepath = new File(path,filename); //判断路径是否存在,如果不存在就创建一个 if (!filepath.getParentFile().exists()) { filepath.getParentFile().mkdirs(); } //将上传文件保存到一个目标文件当中 file.transferTo(new File(path + File.separator + filename)); return "success"; } else { return "error"; } }3. 测试
4. 源码
有必要 上传源码的
4.1 前端基于webuploader.js 完成的
4.2 基于会h5 file属性的
4.3 源码
百度云:
链接:https://pan.baidu.com/s/1BPtd6jboQ9SkvN6y7CJ0Ug
提取码:tyjx码云:https://gitee.com/Luck_Me/file_upload_demo/tree/master