Spring的文件上传
前台代码
通过input获取文件信息:
var action = "http://localhost:8080/playbpo/v1/playblo/logo";
var formData = new FormData();
var filename;
formData.append("logo", document.getElementById("input_id").files[0]);
$.ajax({
type: "POST",
url: action,
async : false,
data: formData,
contentType: false,
processData: false,
success: function(response) {
response = JSON.parse(response);
filename = response.filename;
}
});
后台代码
private String uploadImg(HttpServletRequest request, HttpServletResponse response){
UUID uuid = UUID.randomUUID();
String multipartFileName = "logo";
MultipartResolver resolver = new CommonsMultipartResolver(request.getSession().getServletContext());
MultipartHttpServletRequest multipartRequest = resolver.resolveMultipart(request);
MultipartFile multipartFile = multipartRequest.getFile("logo");
String fileName = multipartFile.getOriginalFilename();// 上传文件名
String extensionName =fileName.substring(fileName.lastIndexOf("."));// 扩展名
String uploadName = uuid.toString().replace("-", "") + extensionName;
File targetFile = new File(UPLOADPATH, uploadName);
JSONObject result = new JSONObject();
if (!targetFile.exists()) {
targetFile.mkdirs();
}
try {
multipartFile.transferTo(targetFile);
result.put(FILENAME, uploadName);
} catch (Exception e) {
_logger.error("multipartFile.transferTo error");
e.printStackTrace();
result.put(MESSAGE, FAIL);
}
return result.toString();
}