springmvc上传文件过程,spring文件上传与下载
目录
SpringMVC文件下载SpringMVC文件上传1。基本介绍2。需求分析/说明3。应用示例4。调试文件。目标文件
00-1010描述3360在SpringMVC中,可以通过返回ResponseEntity的类型来实现文件下载的功能。
案例演示
1.修改json.jsp
h1下载文件的测试/h1a href= %=request . getcontextpath()%/download rel= external no follow 点击下载文件/a 2 .修改JsonHandler.java和添加方法。
/* * *响应用户请求下载文件*/@ request mapping(value=/Downfile )公共响应Byte[]Downfile(HTTP Session Session)throws exception {//c : IDE idea projects LLP-spring MVC out artifacts LLP _ spring MVC _ war _ expanded img//获取文件实际运行的目录//String real path=Session . getservlet context()。get real path(/img );//1.获取InputStream InputStream resources stream=session . getservletcontext()。首先下载文件的GetResourceStream(/img/2 . jpg );//2.打开一个字节数组来存储文件。在这里,教师可以使用byte[]支持二进制数据(图片、视频)。)byte[]bytes=new byte[resource asstream . available()];//3.将下载文件的数据读入byte[]resource stream . read(bytes);//4.add Header Header http headers http headers=new http headers();//指定返回的数据由客户端以附件的形式进行处理。一般有两种方式:内联:直接在页面显示附件:下载http headers . add( content-disposition , attachment )作为附件;filename=2 . jpg’);//5.返回的http status返回新的响应实体(http headers,http status . ok);} 3.将img图片放入web目录
下载响应报头content-type的设置指示响应内容的格式,而content-disposition指示如何处理响应内容。
一般有两种方式:内联:直接在页面上展现关注度;作为附件下载。
SpringMVC文件下载
00-1010基本介绍
Spring MVC提供了对上传文档的直接支持,通过插件和使用MultipartResolver来实现。用Spring Jakarta Commons FileUpload技术实现了一个MultipartResolver实现类:Commons MultipartResovlers默认不在MVC上下文中组装,因此,默认情况下,你不能处理文件上传。如果要使用Spring的文件上传功能,需要在当前上下文中配置MultipartResolver!-配置文件上传需要bean,其中id不能乱涂。CommonsMultipartResolver是MultipartResolver接口的实现类,底层按照接口组装——bean class= org . spring framework . web . mul。
tipart.commons.CommonsMultipartResolver" id="multipartResolver"/>
2.需求分析/图解
3.应用实例
引入 springmvc 文件上传需要的 jar 包
创建 webfileUpload.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head> <title>文件上传</title></head><body><h1>文件上传的演示</h1><%--这里action有两种填写方式,第一种:获取当前工程路径 /springmvc/fileupload 这里第一个斜杠在浏览器端会被解析成ip:port ===》 ip:port/springmvc/fileuploadaction=<%=request.getContextPath()%>/fileUploadaction=fileUpload 我们通过 http://localhost:8080/springmvc/fileUpload.jsp页面提交发起请求,如果不填写斜杠,会将fileupload拼接到 http://localhost:8080/springmvc/后面--%><form action="<%=request.getContextPath()%>/fileUpload" method="post" enctype="multipart/form-data"> 文件介绍:<input type="text" name="introduce"><br> 选择文件:<input type="file" name="file"><br> <input type="submit" value="上传文件"></form></body></html>
创建FileUploadHandler.java
@Controllerpublic class FileUploadHandler { /** * 文件上传 * @param file 客户端上传的文件 * @param request 这里在目标方法添加HttpServletRequest 主要是为了将文件保存到工程路径中 * @return */ @RequestMapping(value = "/fileUpload") public String fileUpload(@RequestParam(value = "file") MultipartFile file, HttpServletRequest request, String introduce) throws IOException { //接收到提交的文件名 String originalFilename = file.getOriginalFilename(); System.out.println("你上传的文件名= " + originalFilename); System.out.println("introduce=" + introduce); //得到要把上传文件保存到哪个路径[全路径:包括文件名] String fileFullPath = request.getServletContext().getRealPath("/img/" + originalFilename); //创建目标文件 File saveToFile = new File(fileFullPath); //将上传的文件,转存到saveToFile(目标文件:我们希望文件存放的位置) file.transferTo(saveToFile); return "success"; }}
浏览器测试
PostMan测试
4.Debug-file.transferTo(目标文件)
transferTo函数会将客户端文件写入到临时文件中,C:UsersasusAppDataLocalJetBrainsIntelliJIdea2020.1tomcatUnnamed_llp-springmvcworkCatalinalocalhostspringmvcupload_6889b5a3_a1f5_4bba_a16e_a8dc15b12b87_00000001.tmp
在将文件写入到目标文件
在实际开发中我们可以将文件写入到服务器的目录中,通过nginx对文件进行映射,这样在浏览器中就可以正常的显示我们上传的文件了
到此这篇关于SpringMVC深入讲解文件的上传下载实现的文章就介绍到这了,更多相关SpringMVC上传下载内容请搜索盛行IT以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。