1、jsp页面
<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="fileField" />
<input type="submit" value="上 传" />
</form>
2、controller
/*
* 上传文件
*/
@RequestMapping(value = "")
public String upFile(Model model,HttpServletRequest request,@RequestParam(value = "fileField", required = false) MultipartFile file) throws Exception {
String fileUrl = "";
//保存服务器项目目录下的文件夹位置
String url = "uoLoad/";
// 判断是否为空
if (file != null && !file.isEmpty() && file.getSize()!=0) {
// 上传文件、request请求、保存目录(upload/upLoad)、路径前缀
String filePath = saveFile(file, request, url, null);
fileUrl = filePath.replaceAll("\\\\", "/");
String fileName = file.getOriginalFilename();
}
}
/**
* 保存上传文件到服务器中
* @param file 上传文件
* @param request http请求
* @param folder 保存目录
* @param prefix 路径前缀
*/
protected String saveFile(MultipartFile file, HttpServletRequest request, String folder, String prefix) {
if(file.isEmpty()) {
return null;
}
if(prefix == null || prefix.equals("")) {
prefix = request.getSession().getServletContext().getRealPath("/");
}
String savePath = prefix + File.separator + "upload" + File.separator + folder;
//文件扩展名
String suffix = null;
File saveDir = new File(savePath);
//保存目录不能在,创建
if(!saveDir.exists()) {
saveDir.mkdirs();
}
//获取文件的后缀
String fileType = file.getContentType();
logger.debug("文件的类型: " + fileType);
if(fileType.toLowerCase().equals("image/jpeg")) {
suffix = ".jpg";
} else if(fileType.toLowerCase().equals("image/png")) {
suffix = ".png";
} else if(fileType.toLowerCase().equals("image/gif")) {
suffix = ".gif";
}if(suffix == null || suffix.equals("")) {
suffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
}
//使用UUID生成文件名称
String fileName = UUID.randomUUID().toString() + suffix;
savePath = savePath + File.separator + fileName;
File saveFile = new File(savePath);
try {
file.transferTo(saveFile);
} catch (Exception e) {
e.printStackTrace();
return null;
}
return "upload" + File.separator + folder + File.separator + fileName;
}
3、xml
<!-- 文件上传 -->
<bean class="org.springframework.web.multipart.commons.CommonsMultipartResolver" id="multipartResolver">
<property value="UTF-8" name="defaultEncoding"/>
<property value="10240" name="maxInMemorySize"/>
<property value="/upload" name="uploadTempDir"/>
<property value="-1" name="maxUploadSize"/>
</bean>