2016-10-26 254 views
2

我为我的应用程序使用Spring Boot,并且想要将一些文件上传到我的数据库中。 我用一个教程来实现这一点,它工作正常。我的问题是,我不知道如何设置上传的最大文件大小。默认值是1MB,但这对我来说还不够。春季上传文件大小限制

我添加这些行到我application.properties:

spring.http.multipart.max文件大小= 100MB

spring.http.multipart.max请求尺寸= 100MB

但它没有帮助。

我的代码:

FileService.java

@Service 
public class FileService { 
@Autowired 
FileRepository fileRepository; 
public Response uploadFile(MultipartHttpServletRequest request) throws IOException { 

    Response response = new Response(); 
    List fileList = new ArrayList(); 

    Iterator<String> itr = request.getFileNames(); 

    while (itr.hasNext()) { 
     String uploadedFile = itr.next(); 
     MultipartFile file = request.getFile(uploadedFile); 
     String mimeType = file.getContentType(); 
     String filename = file.getOriginalFilename(); 
     byte[] bytes = file.getBytes(); 

     File newFile = new File(filename, bytes, mimeType); 
     File savedFile = fileRepository.saveAndFlush(newFile); 
     savedFile.setFile(null); 
     fileList.add(savedFile); 
    } 

    response.setReport(fileList); 
    return response; 
} 
} 

FileController.java

@RestController 
@RequestMapping("/file") 
public class FileController { 

    @Autowired 
    FileService fileService; 
@RequestMapping(value = "/upload", method = RequestMethod.POST) 
    public Response uploadFile(MultipartHttpServletRequest request) throws IOException{ 
     return fileService.uploadFile(request); 
    } 
} 

这段代码就好了,它完美的作品,我做不到设置最大文件大小。

在此先感谢。

+0

性能看起来不错,当你尝试,能得到任何错误更大的文件? –

+0

MultipartException 无法解析多部分servlet请求;嵌套异常是java.lang.IllegalStateException:org.apache.tomcat.util.http.fileupload.FileUploadBase $ FileSizeLimitExceededException:字段上传文件超过了其允许的最大大小1048576字节。 – Siriann

+0

您使用哪种弹簧启动版本。 –

回答

5

随着春节早于4.0的权利属性是

multipart.maxFileSize

multipart.maxRequestSize

从春天4,这些改变为

spring.http .multipart.max-file-size

spring.http.multipart.max请求尺寸

2

为我工作(在春季启动2.0.0):

spring.servlet.multipart.max-file-size=-1