2016-10-26 288 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