MultipartFile实现文件上传功能

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

前言

MultipartFile是spring类型,代表HTML中form data方式上传的文件,包含二进制数据+文件名称。在文件上传这方面能帮助我们快速简洁实现。

使用

1、yml配置文件

spring:
  servlet:
    multipart:
      max-file-size: 10MB     #单个最大文件大小,默认是1MB
      max-request-size: 100MB   #总请求文件大小

2、API介绍

	multipartFile.getContentType()//在控制台打印文件的类型
	multipartFile.getName()//返回文件的名称
	multipartFile.getOriginalFilename()//返回文件的原文件名
	multipartFile.getSize() //单位为字节
	multipartFile.getInputStream() //文件转换为输入流
	multipartFile.transferTo(new File("D:/"));
		/*上传的文件需要保存的路径和文件名称,
		  本质上还是使用了流,只不过是封装了步骤,相当于:
			File file = new File("D:/");
	        file.createNewFile();
	        FileOutputStream stream = new FileOutputStream(file);
	        stream.write(multipartFile.getBytes());
	        stream.close();
	    */

3、文件上传示例

@RestController
@Slf4j
public class UploadTest {

    @RequestMapping("/upload")
    public String upLoad(@RequestPart("file") MultipartFile multipartFile){
        log.info("文件上传开始");
        log.info("文件{}",multipartFile.getOriginalFilename());
        
        if (!multipartFile.isEmpty()){
            try {
                //上传的文件需要保存的路径和文件名称,路径需要存在,否则报错
                multipartFile.transferTo(new File("D:/"++multipartFile.getOriginalFilename()));
            } catch (IllegalStateException | IOException e){
                e.printStackTrace();
                return "上传失败";
            }
        } else {
            return "请上传文件";
        }
        return "上传成功";
    }
}

注意:

@RequestPart("file")主要用来处理content-type为 multipart/form-data 或 multipart/mixed stream 发起的请求,可以获取请求中的参数。

因此在此处,前端上传文件时,key为file,value为文件。

4、postman测试

由于本人只会后端不会做前端,懒得查资料写前端上传文件功能,就使用postman进行测试。

1、将请求方式改为post。

2、Headers中设置设置key=Content-Type,value=multipart/form-data(默认已设置)。

multipartfile文件上传,java,spring,postman

3、在Body中选择form-data,选择File格式,KEY填写在后端代码中编写的@RequestPart(“file”)中的file,value选择你想要上传的文件。
multipartfile文件上传,java,spring,postman
4、点击send即可实现上传功能。

文件下载

既然文件上传功能有了,就在此介绍一下如何实现文件下载功能。文章来源地址https://www.toymoban.com/news/detail-599006.html

@RestController
public class DownTest {

    @RequestMapping("/download")
    public ResponseEntity<Object> download() throws IOException {
        //提供下载的文件的路径
        FileSystemResource file = new FileSystemResource("D:\\cloud/pom.xml");

        HttpHeaders headers = new HttpHeaders();
        headers.add("Cache-Control", "no-cache, no-store, must-revalidate");
        //这里定制下载文件的名称
        headers.add("Content-Disposition", String.format("attachment; filename=\"%s\"", file.getFilename()));
        headers.add("Pragma", "no-cache");
        headers.add("Expires", "0");

        return ResponseEntity.ok()
                .headers(headers)
                .contentLength(file.contentLength())
                .contentType(MediaType.parseMediaType("application/octet-stream"))//以二进制流的形式返回
                .body(new InputStreamResource(file.getInputStream()));
    }
}

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

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

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

相关文章

  • Spring Cloud Feign MultipartFile文件上传踩坑之路(包含前端文件上传请求、后端文件保存到aliyun-oss文件服务器)

    Spring Cloud Feign MultipartFile文件上传踩坑之路(包含前端文件上传请求、后端文件保存到aliyun-oss文件服务器)

    文件上传组件用的是ant-design的a-upload组件,我的界面如下所示: 文件上传请求API: FileUtils.js 需要注意的只有FileUtils.js定义的uploadApi请求函数,其中 URL 为后端请求接口(“/imageConvert/upload”),文件上传方法必须定义为 POST ,在 headers 加入’Content-type’: ‘multipart/form-data’,后端

    2024年02月12日
    浏览(11)
  • java MultipartFile+vue+element 批量上传文件、图片,与普通数据同时提交保存才上传到后端

    java MultipartFile+vue+element 批量上传文件、图片,与普通数据同时提交保存才上传到后端

    文件上传项目可参考:点击预览 1.最简单也是最普遍的做法是form表单提交,其实前端提交到后端也是难以离开form表单提交, 一般有两种方式来处理文件、图片上传: 先上传,获取返回路径,再整个表单提交后端保存; 普通数据与文件图片同时提交后端,由后端处理 优点比

    2024年02月03日
    浏览(13)
  • Postman本地测试上传MultipartFile文件接口

    Postman本地测试上传MultipartFile文件接口

    在请求Body中选择form-data传输类型,填写后端file参数名称,并将参数设置为File类型,这时value输入框将变成文件选择框。 如果此时发送请求给后端,会返回报错request is not a multipart request. 我们还需要将数据传输类型Content-Type设置为multipart/form-data.

    2024年02月12日
    浏览(11)
  • 批量上传文件,以input上传文件,后端以List<MultipartFile>类型接收

    批量上传文件,以input上传文件,后端以List<MultipartFile>类型接收

    最近公司要求要做一个批量上传文件的功能,以往做的导入Excel表格、上传图片都是上传一个文件的,此次在开发的过程中着实让我犯了难,尤其是前后端对接的时候,这里做个记录。 后端接口是这样的,跟单个文件上传相比就是将MultipartFile类型的数据变成了集合,这个Mu

    2024年02月07日
    浏览(9)
  • MultipartFile上传至服务器,文件名称中文乱码问题

    MultipartFile上传至服务器,文件名称中文乱码问题

    1.首先查看服务器是否设置为了zh_CN.UTF-8 输入命令:locale  不是则,进行查看服务器上是否有zh_CN.UTF-8 查看所有可以使用的字符编码集 输入命令:locale -a  如果没有可用的zh_CN.UTF-8 则进行安装: CentOS命令:yum install kde-l10n-Chinese -y  ubuntu命令:sudo apt-get install language-pack-zh-ha

    2024年02月10日
    浏览(10)
  • SpringBoot如何使用MultipartFile进行文件上传保存到服务器本地

    之前一直都是用的别人封装好的文件上传方法,这次想自己写一个特别简单的,文件上传方法,非常适合新手观看… 首先需要Springboot需要有Web依赖,就是下面这个依赖 依赖导完了,下面就直接是代码,大家看一下 到这里文件上传的解释都在代码里面,下面如果报文件过大的报错还需

    2024年02月13日
    浏览(17)
  • MultipartFile类型接收上传文件报出的UncheckedIOException以及删除tomcat临时文件失败源码探索

    MultipartFile类型接收上传文件报出的UncheckedIOException以及删除tomcat临时文件失败源码探索

    因为需要分析数据,待处理excel文件的数据行数太大,手动太累,花半小时写了一个定制的数据入库工具,改成了通用的,整个项目中的万级别数据都在工具上分析,写SQL进行分析,但是遇到很疑惑的问题,文件上传结束收流时,tomcat的DisFileItem类的delete方法会自动调用,但是

    2024年02月15日
    浏览(8)
  • 实现并解决微服务间OpenFeign转发文件格式MultipartFile

    实现并解决微服务间OpenFeign转发文件格式MultipartFile

    使用openfeign转发MultipartFile类型的文件时出现了下面的错误。 分析原因后发现,请求中并没有正确设置请求头部中 Content-Type 为 multipart/form-data 的类型。 multipart/form-data 是一种 HTTP 请求的内容类型(Content-Type),它被设计用来支持文件上传以及提交表单数据。 对于文件格式,

    2024年01月24日
    浏览(6)
  • 【使用multipart/form-data方式传递MultipartFile参数,实现服务间文件的传递】

    目录 一、代码实现 二、MultipartFile工具类 三、HttpClient使用 四、参考链接 一、代码实现 1、A服务接收前端上传文件并发送至B服务 引入依赖 使用MultipartFile接收前端文件 调取第三方接口,发送 MultipartFile 文件 2、B服务接收文件 二、MultipartFile工具类 简介:MultipartFile是SpringMV

    2024年02月12日
    浏览(11)
  • Spring: MultipartFile和File的区别

    MultipartFile 和 File 是用于处理文件上传的两种不同类型,主要在不同的编程环墨境中使用。 File 是 Java 标准库中的类,用于表示文件或目录的抽象路径名。 它通常用于在 Java 程序中对本地文件系统中的文件进行操作,比如创建文件、读取文件内容、删除文件等。 File 类并不直

    2024年02月21日
    浏览(9)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包