文件上传
表单页面
method属性必须为post
必须要enctype="multipart/form-data"属性
Servlet3.0上传
在web.xml中
在中添加
在(servletname)-servlet.xml中
class="org.springframework.web.multipart.support.StandardServletMultipartResolver">
在Java文件中
@RequestMapping("upload1")
public void upload1(@RequestParam(value="title") String title,
@RequestParam(value="upfile") MultipartFile file,
HttpServletRequest request){
System.out.println(title);
String rootPath=request.getServletContext().getRealPath("/");
if(!file.isEmpty()){
try {
InputStream is=file.getInputStream();
FileOutputStream fos=new FileOutputStream(
rootPath+"/"+"upload/"
+file.getOriginalFilename());
byte []cache=new byte[is.available()];
fos.write(cache);
is.close();
fos.flush();
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Commons Fileupload上传
导包
commons-fileupload.jar
commons-io.jar
在(servlet-name)-servlet.xml中
在java中
@RequestMapping("upload2")
public void upload2(@RequestParam(value="title") String title,
@RequestParam(value="upfile") MultipartFile file,
HttpServletRequest request){
System.out.println(title);
String rootPath=request.getServletContext().getRealPath("/");
try {
//复制文件 FileCopyUtils.copy(文件字节流,上传的位置);
FileCopyUtils.copy(file.getBytes(),
new File(rootPath+"/upload",file.getOriginalFilename()));
} catch (IOException e) {
e.printStackTrace();
}
}
一个表单多个文件的上传
@RequestMapping("upload3")
public void upload3(@RequestParam(value="title") String title,
@RequestParam(value="upfile") MultipartFile []file,
HttpServletRequest request){
System.out.println(title);
String rootPath=request.getServletContext().getRealPath("/");
try {
for(MultipartFile temp:file)
FileCopyUtils.copy(temp.getBytes(),
new File(rootPath+"/upload",temp.getOriginalFilename()));
} catch (IOException e) {
e.printStackTrace();
}
}