SpringBoot文件上传——MultipartFile

通过MultipartFile来处理文件上传

    @PostMapping("from")
	@ResponseBody
	public String handleFormUpload(MultipartFile file) throws IOException {
		
		if(!file.isEmpty()) {
			
			String originalFilename = file.getOriginalFilename();
			InputStream inputStream = file.getInputStream();
			
			//处理上传内容
			return "success";
		}
		return "failure";
	}

MultipartFile提供了以下方法来获取上传文件的信息:

  • getOriginalFilename,获取上传的文件名字;
  • getBytes,获取上传文件内容,转为字节数组;
  • getInputStream,获取一个InputStream;
  • isEmpty,文件上传内容为空,或者根本就没有文件上传;
  • getSize,文件上传的大小。
  • transferTo(File dest),保存文件到目标文件系统;

同时上传多个文件,则使用MultipartFile数组类来接受多个文件上传:

    @PostMapping("from")
    @ResponseBody
	public String handleFormUpload(MultipartFile[] files) throws IOException {
		
		return "failure";
	}

可以通过配置application.properties对SpringBoot上传的文件进行限定默认为如下配置:

spring.servlet.multipart.enabled=true
spring.servlet.multipart.file-size-threshold=0
spring.servlet.multipart.location=
spring.servlet.multipart.max-file-size=1MB
spring.servlet.multipart.max-request-size=10MB
spring.servlet.multipart.resolve-lazily=false
  • enabled默认为true,既允许附件上传。
  • file-size-threshold限定了当上传文件超过一定长度时,就先写到临时文件里。有助于上传文件不占用过多的内存,单位是MB或KB,默认0,既不限定阈值。
  • location指的是临时文件的存放目录,如果不设定,则web服务器提供一个临时目录。
  • max-file-size属性指定了单个文件的最大长度,默认1MB,max-request-size属性说明单次HTTP请求上传的最大长度,默认10MB.
  • resolve-lazily表示当文件和参数被访问的时候再被解析成文件。
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SpringBoot项目中使用MultipartFile来上传文件,可以按照以下步骤: 1. 在前端页面中添加文件上传表单,例如: ```html <form action="/upload" method="post" enctype="multipart/form-data"> <input type="file" name="file"> <button type="submit">上传</button> </form> ``` 2. 在后端Controller中添加文件上传处理方法,例如: ```java @PostMapping("/upload") public String handleFileUpload(@RequestParam("file") MultipartFile file) { if (file.isEmpty()) { return "上传失败,请选择文件"; } try { // 获取文件名 String fileName = file.getOriginalFilename(); // 获取文件的字节数组 byte[] bytes = file.getBytes(); // TODO: 保存文件到指定位置 return "上传成功"; } catch (IOException e) { e.printStackTrace(); return "上传失败:" + e.getMessage(); } } ``` 在上面的代码中,我们首先检查上传的文件是否为空,然后获取文件名和文件的字节数组,并将其保存到指定位置。请注意,由于我们使用了`enctype="multipart/form-data"`,因此必须使用`@RequestParam`注解来获取文件参数。 3. 在SpringBoot的`application.properties`文件中配置文件上传的最大限制大小,例如: ```properties spring.servlet.multipart.max-file-size=10MB spring.servlet.multipart.max-request-size=10MB ``` 在上面的配置中,我们将文件上传的最大限制大小设置为10MB。如果上传的文件大小超过了这个限制,将会抛出`MaxUploadSizeExceededException`异常。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值