需要依赖的jar包,在pom.xml中添加commons-fileupload-1.2.1.jar、commons-io-2.0.jar(依赖包)
html页面代码如下:
<body>
<form action="/projectms/test/simpleFileupload" method="post" enctype="multipart/form-data">
最简单的文件上传:<input type="file" name="fileupload"/>
描述:<input type="text" name="desc"/>
<input type="submit" value="submit"/>
</form>
</body>
controller代码如下:
@RequestMapping("/simpleFileupload")
public void upload(HttpServletRequest request, HttpServletResponse response) throws IOException{
DiskFileItemFactory factory=new DiskFileItemFactory();
ServletFileUpload upload=new ServletFileUpload(factory);
upload.setHeaderEncoding("utf-8");
factory.setSizeThreshold(1024 * 500);//设置内存的临界值为500,如果超过则保存到/root/aaa目录下
File linshiFile=new File("/root/aaa");
factory.setRepository(linshiFile);
upload.setSizeMax(1024 * 1024 * 5);
try {
List<FileItem> items=upload.parseRequest(request);
for (FileItem item : items) {
if (item.isFormField()) {
String name = item.getFieldName();
String value = item.getString("utf-8");
System.out.println(name + ": " + value);
}else {
String fileName = item.getName();
long sizeInBytes = item.getSize();
System.out.println(fileName);
System.out.println(sizeInBytes);
InputStream in = item.getInputStream();
byte[] buffer = new byte[1024];
int len = 0;
fileName = "/root/bbb/" + fileName;//文件最终上传的位置
System.out.println(fileName);
OutputStream out = new FileOutputStream(fileName);
while ((len = in.read(buffer)) != -1) {
out.write(buffer, 0, len);
}
out.close();
in.close();
}
}
} catch (FileUploadException e) {
e.printStackTrace();
}
}