1 yml文件配置
com:
js:
localFilePath:
D://jsStatic
staticFile:
/static
2 上传地址获取
/**
* 根据yml文件的配置,获取图片的存储路径
*/
@Value("${com.js.localFilePath}")
String saveurl;
@Value("${com.js.staticFile}")
String fileurl;
3上传
@RequestMapping(value = "suggestion", method = {RequestMethod.POST})
public ResultData addSuggestion(
@RequestParam(value = "files") MultipartFile[] files, String data,
HttpServletRequest request, HttpServletResponse res)
{
try {
//文件的保存路径
String savePath = saveurl.replace("//", "\\")+fileurl.replace("/", "\\")+"\\";
//File filedir = new File("D:\\jsStatic\\static");
//如果文件夹不存在,则创建文件夹
File filedir = new File(saveurl.replace("//", "\\\\")+fileurl.replace("/", "\\\\"));
if(!filedir.exists()){
filedir.mkdirs();
}
List<String> urls = new LinkedList<String>();
if (null != files && files.length > 0) {
// 遍历并保存文件
for (MultipartFile file : files) {
String fileName = file.getOriginalFilename();
String suffix = fileName.substring(fileName
.lastIndexOf("."));
fileName = UUID.randomUUID() + suffix;
try {
file.transferTo(new File(savePath + fileName));
} catch (IllegalStateException e) {
e.printStackTrace();
// 保存失败,删除之前保存的文件
for (int i = 0; i < urls.size(); i++) {
deleteFile(urls.get(i));
}
String code = UUID.randomUUID().toString();
log.error(code, e);
return new ResultData(false, "500", "图片保存异常-" + code);
} catch (IOException e) {
e.printStackTrace();
// 保存失败,删除之前保存的文件
for (int i = 0; i < urls.size(); i++) {
deleteFile(urls.get(i));
}
String code = UUID.randomUUID().toString();
log.error(code, e);
return new ResultData(false, "500", "图片保存异常-" + code);
}
urls.add(savePath + fileName);
}
}