SpringMVC之文件上传和下载

这篇具有很好参考价值的文章主要介绍了SpringMVC之文件上传和下载。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

实现下载文件和上传文件的功能。


一、文件下载

使用ResponseEntity实现下载文件的功能

@RequestMapping("/testDown")
public ResponseEntity<byte[]> testResponseEntity(HttpSession session) throws
IOException {
//获取ServletContext对象
ServletContext servletContext = session.getServletContext();
//获取服务器中文件的真实路径
String realPath = servletContext.getRealPath("/static/img/1.jpg");
//创建输入流
InputStream is = new FileInputStream(realPath);
//创建字节数组
byte[] bytes = new byte[is.available()];
//将流读到字节数组中
is.read(bytes);
//创建HttpHeaders对象设置响应头信息
MultiValueMap<String, String> headers = new HttpHeaders();
//设置要下载方式以及下载文件的名字
headers.add("Content-Disposition", "attachment;filename=1.jpg");
//设置响应状态码
HttpStatus statusCode = HttpStatus.OK;
//创建ResponseEntity对象
ResponseEntity<byte[]> responseEntity = new ResponseEntity<>(bytes, headers,
statusCode);
//关闭输入流
is.close();
return responseEntity;
}

二、文件上传

文件上传要求form表单的请求方式必须为post,并且添加属性enctype=“multipart/form-data”
SpringMVC中将上传的文件封装到MultipartFile对象中,通过此对象可以获取文件相关信息。
步骤:

  • 添加依赖
<!-- https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload --
>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
  • 在SpringMVC的配置文件中添加配置:
<!--必须通过文件解析器的解析才能将文件转换为MultipartFile对象-->
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
</bean>
  • 控制器方法:
@RequestMapping("/testUp")
public String testUp(MultipartFile photo, HttpSession session) throws
IOException {
//获取上传的文件的文件名
String fileName = photo.getOriginalFilename();
//处理文件重名问题
String hzName = fileName.substring(fileName.lastIndexOf("."));
fileName = UUID.randomUUID().toString() + hzName;
//获取服务器中photo目录的路径
ServletContext servletContext = session.getServletContext();
String photoPath = servletContext.getRealPath("photo");
File file = new File(photoPath);
if(!file.exists()){
file.mkdir();
}
String finalPath = photoPath + File.separator + fileName;
//实现上传功能
photo.transferTo(new File(finalPath));
return "success";
}

总结

以上就是springMVC文件上传和下载的讲解。文章来源地址https://www.toymoban.com/news/detail-692844.html

到了这里,关于SpringMVC之文件上传和下载的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SpringMVC 实现文件的上传和下载

    SpringMVC 是一个基于 Java 的 Web 框架,它提供了方便的文件上传和下载功能。下面是它的实现原理简要描述: 文件上传: 客户端通过表单(HTML 的 标签)将文件选择并提交到服务器。 服务器接收到请求后,SpringMVC 会将字节流形式的文件内容封装成 MultipartFile 对象。 SpringMVC 使

    2024年02月05日
    浏览(46)
  • 11、SpringMVC之文件下载和上传

    创建名为spring_mvc_file的新module,过程参考9.1节和9.5节 注意:springmvc 根据bean的id来获取文件解析器,因此必须设置 id 属性,且属性值必须为 multipartResolver 如果上传了同名的文件,那新的文件就会覆盖旧的文件; 因此需要通过一个机制,保证上传后的文件名的不会和新上传的

    2024年02月05日
    浏览(37)
  • SpringMVC Day 08 : 文件上传下载

    文件上传和下载是 Web 开发中的重要环节,但它们往往不那么容易实现。幸运的是,Spring MVC 提供了一套简单而又强大的解决方案,让我们可以专注于业务逻辑,而不必过多关注底层的文件处理细节。 在本篇博客中,我们将学习如何利用 Spring MVC 实现文件上传和下载功能。首

    2024年02月06日
    浏览(43)
  • 【SpringMVC】文件上传与下载、JREBEL使用

    目录 一、引言 二、文件的上传 1、单文件上传 1.1、数据表准备 1.2、添加依赖 1.3、配置文件 1.4、编写表单 1.5、编写controller层 2、多文件上传 2.1、编写form表单 2.2、编写controller层 2.3、测试 三、文件下载 四、JREBEL使用 1、下载注册 2、离线设置 为什么要使用文件的上传下载?

    2024年02月07日
    浏览(39)
  • SpringMVC之文件上传下载以及jrebel的使用

    目录 一、文件上传 1.1 导入依赖 1.2 配置文件上传解析器 1.3 配置服务器存放文件地址 1.3.1 点击编辑Configurations 1.3.2 将项目部署至tomcat服务器上 1.3.3 配置相对路径 1.4 导入PropertiesUtil工具类 1.5 编写resource.properties 1.6 添加sql 1.7 编写PageController类 1.8 编写主页展示界面 1.9 编

    2024年02月09日
    浏览(40)
  • springmvc上传与下载

    index.jsp代码 WEB-INF下的success.jsp代码 spring.xml FileController代码 运行的时候,浏览器页面要在WEB-INF下的index.jsp,跑完该项目时,页面是webapp下的index.jsp,所以跑完之后切换请求路径(/toFile)进入WEB-INF下的index.jsp DownloadController代码 跑的时候记得在路径带上 file=XXX ,并在执行前指

    2024年01月18日
    浏览(29)
  • 后端:使用easyExcel实现解析Excel文件读取数据。前端:Excel模板下载、前端上传文件

            本篇是EasyExcel快速入门知识,讲解如何读取Excel文件,对Excel中错误信息如空字符、必填项为空、表格格式校验做到处理 ,并给出了实际项目中示例代码;为什么要使用easyexcel;原因是相比于poi,easyexcel更加轻量级,读取写入API方便,并且在工作中占用内存较小;

    2024年02月05日
    浏览(69)
  • SpringMVC的文件上传

    文件上传客户端表单需要满足: 表单项type=“file” 表单的提交方式是post 表单的enctype属性是多部分表单形式,及enctype=“multipart/form-data” 添加依赖 配置多媒体解析器 后台程序 完成文件上传 多文件上传,只需要将页面修改为多个文件上传项,将方法参数MultipartFile类型修改

    2024年02月02日
    浏览(32)
  • SpringMVC文件上传(CommonsMultipartResolver)

    以上传一个图片为例 在index.jsp里面定义超链接 测试结果 1.上传文件前 2.上传文件后

    2024年01月22日
    浏览(33)
  • SpringMVC多文件上传

    在spring-mvc.xml文件中添加文件上传解析器。 这段代码是一个Spring框架的配置,用于处理文件上传功能。它定义了一个名为 multipartResolver 的Bean,使用 org.springframework.web.multipart.commons.CommonsMultipartResolver 类来处理文件上传。其中设置了默认的编码方式为UTF-8,文件的最大大小为

    2024年02月09日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包