springboot 上传大文件失败

先是nginx报错413 Request Entity Too Large

错误原因

服务器限制了文件上传大小

解决方案

找到nginx的配置文件nginx/conf/nginx.conf,在location块中添加其中的配置为:

client_max_body_size 50m; 

重启nginx ,即可解决413 Request Entity Too Large

sbin/nginx reload

还是上传失败,检查错误日志,提示

springframework.web.multipart.MaxUploadSizeExceededException: Maximum upload size exceeded

错误原因

springboot限制文件上传大小

修改springboot配置文件,增加配置

spring
  servlet
    multipart
      max-file-size:100MB
      max-request-size:100MB

重启项目,问题解决。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在Spring Boot中实现大文件上传可以采用分片上传的方式。下面是一个简单的示例代码: 1. 首先,需要在pom.xml文件中添加以下依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> ``` 2. 创建一个Controller类,处理文件上传请求: ```java import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import java.io.File; import java.io.IOException; @RestController public class FileUploadController { @Autowired private FileUploadService fileUploadService; @PostMapping("/upload") public String uploadFile(@RequestParam("file") MultipartFile file) { if (file.isEmpty()) { return "请选择要上传文件"; } try { String fileName = StringUtils.cleanPath(file.getOriginalFilename()); fileUploadService.uploadFile(fileName, file.getBytes()); return "文件上传成功"; } catch (IOException e) { e.printStackTrace(); return "文件上传失败"; } } } ``` 3. 创建一个Service类,用于处理文件上传逻辑: ```java import org.springframework.stereotype.Service; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; @Service public class FileUploadService { private static final String UPLOAD_DIR = "upload-dir"; public void uploadFile(String fileName, byte[] fileData) throws IOException { File directory = new File(UPLOAD_DIR); if (!directory.exists()) { directory.mkdir(); } File file = new File(directory.getAbsolutePath() + File.separator + fileName); try (FileOutputStream fos = new FileOutputStream(file)) { fos.write(fileData); } } } ``` 4. 在application.properties文件中配置上传文件的临时目录: ```properties spring.servlet.multipart.enabled=true spring.servlet.multipart.file-size-threshold=2KB spring.servlet.multipart.max-file-size=200MB spring.servlet.multipart.max-request-size=215MB ``` 这样,当你发送一个POST请求到`/upload`接口,并携带一个名为`file`的文件参数时,文件将会被上传到指定的目录中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mraliang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值