/**
* 上传文件
*
* @param file
* @param request
* @return
*/
@ResponseBody
@PostMapping("uploadFile")
@ApiOperation(value = "上传文件(本地)")
public ResultDTO<String> uploadFile(MultipartFile file, HttpServletRequest request) {
ResultDTO<String> result = new ResultDTO<>();
if (CommonFuntions.isEmptyObject(file)) {
return result.set(ResultCodeEnum.ERROR_INVALID_PARAMS, "文件不能为空");
}
String fileNameUrl = null;
if (file != null) {
FileInfoDTO fileInfo = FileUtils.uploadFile(file);
fileNameUrl = fileInfo.getUrl();
}
if (StringUtils.isEmpty(fileNameUrl)) {
return result.set(ResultCodeEnum.FAIL, "文件上传失败!", fileNameUrl);
} else {
return result.set(ResultCodeEnum.SUCCESS, "文件上传成功!", fileNameUrl);
}
}
配置文件中的配置
// file.path=/Users/sensancao/file/cloudcity/
filePath = PropertiesUtils.getProperty("file.path");
// file.prefix=/files/
filePrefix = PropertiesUtils.getProperty("file.prefix");
/**
* 文件上传
*
* @author liqg @creationDate. 2015-5-30 下午3:21:59
* @param file
* @return
*/
public static FileInfoDTO uploadFile(MultipartFile file) {
if (file != null) {
InputStream in = null;
OutputStream out = null;
try {
int BUFFER_SIZE = 16 * 1024;
String fileName = file.getOriginalFilename();
// 拼接完整路径
Calendar c = Calendar.getInstance();
String directory = c.get(Calendar.YEAR) + "/" + (c.get(Calendar.MONTH) + 1) + "/"
+ c.get(Calendar.DATE) + "/";
String path = filePath + directory; // 文件保存的物理路径
File dstFile = new File(path);
if (!dstFile.exists()) {
dstFile.mkdirs();
}
// 文件名
String newFileName = c.getTimeInMillis() + fileName.substring(fileName.lastIndexOf("."));
dstFile = new File(path + 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);
}
// 文件信息
FileInfoDTO fileInfo = new FileInfoDTO();
fileInfo.setFileName(fileName);
fileInfo.setPath(path);
fileInfo.setSize(file.getSize());
fileInfo.setUrl(filePrefix + "/" + directory + newFileName);
// fileInfo.setUrl(directory + newFileName);
return fileInfo;
} 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 null;
}