图片上传通用后台模板
后台通用方法
@RequestMapping(value = "singlefile",method= RequestMethod.POST)
@ResponseBody
public ResultMesseage uploadImge(MultipartFile file, HttpServletRequest request) {
ResultMesseage resultMesseage=new ResultMesseage();
try{
File path = new File(ResourceUtils.getURL("classpath:").getPath());
if(!path.exists()) path = new File("");
//如果上传目录为/static/images/upload/,则可以如下获取:
//在开发测试模式时,得到的地址为:{项目跟目录}/target/static/images/upload/
//在打包成jar正式发布时,得到的地址为:{发布jar包目录}/static/images/upload/
File staticPath = new File(path.getAbsolutePath(),"static/images/upload/");
if(!staticPath.exists()) staticPath.mkdirs();
//获取文件名
long time = new Date().getTime();
//时间戳+图片名
String fileName = time+file.getOriginalFilename();
//图片存储目录以及图片名称
String urlPath = "images" + File.separator + fileName;
//图片保存路径
String savePath = staticPath + File.separator + urlPath;
System.out.println("图片保存地址:" + savePath);
// 访问路径=静态资源路径+文件目录路径
String visitPath = "static/" + urlPath;
//图片访问路径存数据库
String devNamePaht = "/images/upload/images/"+fileName;
System.out.println("图片访问uri:" + devNamePaht);
request.setAttribute("devNamePaht",devNamePaht);
File saveFile = new File(savePath);
if (!saveFile.exists()) {
saveFile.mkdirs();
}
try {
file.transferTo(saveFile); //将临时存储的文件移动到真实存储路径下
} catch (IOException e) {
e.printStackTrace();
}
resultMesseage.setMsg_tyep("success");
resultMesseage.setMesseage(devNamePaht);//把值返回过去
}catch (Exception e) {
e.printStackTrace();
resultMesseage.setMsg_tyep("error");
resultMesseage.setMesseage(e.getMessage());
}
return resultMesseage;
}
注意:前端上传过来的name字段属性为【file】,form表单表头为:enctype="multipart/form-data"