/**
* 通用上传请求
*/
@PostMapping("/common/upload/file")
@ResponseBody
public AjaxResult uploadFiles(MultipartFile file) {
if (file != null) {
InputStream in = null;
OutputStream out = null;
try {
int BUFFER_SIZE = 16 * 1024;
Calendar c = Calendar.getInstance();
String fileName = file.getOriginalFilename();
// 拼接完整路径
String filePath = DictUtils.getDictData("file_upload_config", "file_upload_path");
filePath+= DateUtils.parseDateToStr(DateUtils.YYYYMMDD,DateUtils.getNowDate());
File dstFile = new File(filePath);
if (!dstFile.exists()) {
dstFile.mkdirs();
}
// 文件名
String newFileName = c.getTimeInMillis() + RandomUtils.generateNumString(4) + fileName.substring(fileName.lastIndexOf("."));
dstFile = new File(filePath +"/"+ newFileName);
in = new BufferedInputStream(file.getInputStream(), BUFFER_SIZE);
out = new BufferedOutputStream(new FileOutputStream(dstFile), BUFFER_SIZE);
byte[] buffer = new byte[BUFFER_SIZE];
int len = 0;
while ((len = in.read(buffer)) > 0) {
out.write(buffer, 0, len);
}
// 文件信息
AjaxResult ajax = AjaxResult.success();
ajax.put("fileName", fileName);
ajax.put("url", filePath+"/"+newFileName);
return ajax;
} catch (Exception e) {
log.error("文件上传异常", e);
} finally {
try {
if (in != null) {
in.close();
in = null;
}
if (out != null) {
out.close();
out = null;
}
} catch (IOException e) {
return AjaxResult.error(e.getMessage());
}
}
}
return null;
}