的index.html
id="myFile" enclosed in div tag
<div id = "myFile">
</div>
controller.js
$("#myFile").uploadFile({
url:/Spot_audit/upload/"+id+"/"+year",
fileName:$scope.myFile,
allowedTypes: "zip,docx,xlsx,7z",
maxFileSize:5*1024*1024
});
controller.java
/* file upload */
@RequestMapping(value="/upload/{Id}/{fy}", method=RequestMethod.POST)
public void handleFileUpload (@RequestParam("file") MultipartFile file, @PathVariable("fy") String year, @PathVariable("Id") String aid){
if (!file.isEmpty()) {
String path1="C:/Users/Downloads/"+month+"/"+aid+"/"+file.getOriginalFilename();
Path path= Paths.get(path1);
try{
File newFile1 = new File(path);
newFile1.getParentFile().mkdirs();
newFile1.createNewFile();
BufferedOutputStream os1 = new BufferedOutputStream(new FileOutputStream(newFile1));
os1.write(file.getBytes(), 0, (int) file.getSize());
os1.flush();
os1.close();
}catch(Exception e){
e.printStackTrace();
CompPath="";
}
}
//return new ResponseEntity<String>(fullpath, HttpStatus.CREATED);
}
}
答案 0 :(得分:1)
由于只有大于100 KB的文件才会出现此问题,因此您的应用程序服务器会遇到限制。
通常会设置一个相当低的限制,以防止“恶意”用户上传文件太大。您必须提高此最大POST限制才能获得更大的文件。
设置取决于您使用的应用程序服务器/ servlet容器。
如果要直接在服务器设置中更改值,并且服务器是Tomcat,请查看此处: http://tomcat.apache.org/tomcat-8.0-doc/config/http.html
您可以在web.xml中定义相同的值:
<multipart-config>
<location>/tmp</location>
<max-file-size>20848820</max-file-size>
<max-request-size>418018841</max-request-size>
<file-size-threshold>1048576</file-size-threshold>
</multipart-config>
甚至可以从代码中提高值:
@MultipartConfig(location="/tmp", fileSizeThreshold=1024*1024,
maxFileSize=1024*1024*5, maxRequestSize=1024*1024*5*5)
(均来自https://docs.oracle.com/javaee/6/tutorial/doc/gmhal.html)
如果您的代码基于Spring Boot,则可以选择另外一种方法,只需要在application.properties中设置配置值。此设置适用于所有containers supported的Spring Boot(Tomcat 7-8,Jetty 8-9,Undertow)
multipart.maxFileSize: 128KB
multipart.maxRequestSize: 128KB