SpringMVC实现文件的上传和下载 | 您所在的位置:网站首页 › 文件下载的代码 › SpringMVC实现文件的上传和下载 |
SpringMVC文件的上传和下载
一、SpringMVC文件上传
1、什么是文件上传?
文件上传: 指的就是将用户本地计算机中文件上传到服务器上的过程称之为文件上传 2、文件上传编程步骤1、Client选择文件(上传页面) (1)method="post" (2)提供文件框 (3)上传文件时enctype="multipart/form-data" 传递的数据不仅仅是value,上传的数据 以二进制形式编码 2、服务端创建文件目录存放上传文件(默认文件夹不能为空,否则idea不能加载)3、文件上传的Controller(核心功能:复制文件) (1)spring+spring项目整合 spring+springmvc所需依赖 junit junit 4.11 test org.springframework spring-core 4.3.2.RELEASE org.springframework spring-context 4.3.2.RELEASE org.springframework spring-context-support 4.3.2.RELEASE org.springframework spring-jdbc 4.3.2.RELEASE org.springframework spring-aop 4.3.2.RELEASE org.springframework spring-beans 4.3.2.RELEASE org.springframework spring-expression 4.3.2.RELEASE org.springframework spring-aspects 4.3.2.RELEASE org.springframework spring-tx 4.3.2.RELEASE org.springframework spring-web 4.3.2.RELEASE org.springframework spring-webmvc 4.3.2.RELEASE javax.servlet servlet-api 2.5 provided javax.servlet.jsp jsp-api 2.1 jstl jstl 1.2 commons-fileupload commons-fileupload 1.3 web.xml配置 charset org.springframework.web.filter.CharacterEncodingFilter encoding UTF-8 charset /* mvc org.springframework.web.servlet.DispatcherServlet contextConfigLocation classpath:spring_mvc.xml mvc / spring_mvc.xml文件 (2)项目中引入相关依赖 文件上传的核心依赖,将依赖加入pom.xml中 commons-fileupload commons-fileupload 1.3 (3)开发页面 logo:注意上传文件时: 1. form表单提交方式必须为post 2.form表单的enctype属性必须为multipart/form-data (4)开发控制器 package com.tjcu; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; import java.io.IOException; /** * @author 王恒杰 * @date 2021/11/21 22:18 * @Description: */ @Controller @RequestMapping("file") public class File { /** * multipart['mʌltipɑt]:多部分 * * @param request * @param logoUpload * @return */ @RequestMapping("upload") public String upload(HttpServletRequest request, MultipartFile logoUpload) { //获取上传文件路径 String realPath = request.getSession().getServletContext().getRealPath("/upload"); System.out.println("真实路径:" + realPath); // 获取文件原始名称 original:[əˈrɪdʒənl] 原创的 String originalFilename = logoUpload.getOriginalFilename(); System.out.println("文件的原始名称:" + originalFilename); // 上传文件到服务器 transfer:[trænsˈfɜː] 转移 try { logoUpload.transferTo(new java.io.File(realPath, originalFilename)); } catch (IOException e) { e.printStackTrace(); } return "index"; } } (5)配置文件上传解析器 将文件上传解析器加入到spring_mvc.xml文件中注意:使用springmvc中multipartfile接收客户端上传的文件必须配置文件上传解析器且解析的id必须为multipartResolver 3、文件上传注意问题 (1)java.io.FileNotFoundException异常关于使用Intellij Idea时系统找不到指定文件的解决方案 解决思路:使用UUID解决同名问题 springmvc文件上传的大小限制在文件上传解析器进行设置 文件下载:将服务器上的文件下载到当前用户访问的计算机的过程称之为文件下载 下载流程 1、在服务端准备可供下载的文件 2、Client中罗列服务端可供下载的文件 准备链接 3、文件下载Controller 1、从服务器文件系统中加载指定文件 输入流 2、项目中准备下载目录并存在下载的相关文件注意:下载时必须设置响应的头信息,指定文件以何种方式保存,另外下载文件的控制器不能存在返回值,代表响应只用来下载文件信息、 4、开发页面 文件下载 点击下载文件(1.txt) 点击下载文件(2.txt) 点击下载文件(3.txt) 点击下载文件(4.txt)inline在线尝试下载 ,attachment:附件形式下载 response.setHeader("content-disposition","attachment;fileName="+fileName); |
CopyRight 2018-2019 实验室设备网 版权所有 |