SpringBoot 图片上传(详解篇)
前言:SpringBoot在服务器内上传文件,是临时文件,在重启时候会生成另外的目录,也就意味着原来上传的图片在重启后就访问不到了。1.图片上传@PostMapping("/upload")public CommonResult insertDbMsPhoto(@RequestPart("photos") MultipartFile[] photos,@RequestParam("mid") St
·
前言:SpringBoot在服务器内上传文件,是临时文件,在重启时候会生成另外的目录,也就意味着原来上传的图片在重启后就访问不到了。
1.图片上传
@PostMapping("/upload")
public CommonResult insertDbMsPhoto(@RequestPart("photos") MultipartFile[] photos,
@RequestParam("mid") String mid,
HttpServletRequest request){
try {
if (photos.length > 0) {
HashMap<String , String> hashMap = null;
for (MultipartFile photo : photos) {
if (!photo.isEmpty()) {
hashMap = new HashMap<>();
String originalFilename = photo.getOriginalFilename();
String sufixPhoto = originalFilename.split("\\.")[1];
//拼接图片
String date = new SimpleDateFormat("yyyyMM").format(System.currentTimeMillis());
InputStream is = null;
OutputStream os = null;
//获得路径 本地路径
String filePath = request.getSession().getServletContext()
.getRealPath("/UploadFiles/db/photo/"+date+"/");
File file = new File(filePath);
if(!file.exists()){
//先创建该文件的所有上级目录
if (file.getParentFile().mkdirs())
{
try{
log.info("创建了文件目录====================");
//如果不存在就创建
file.mkdir();
}catch (Exception e){
e.printStackTrace();
}
}
}
//获得图片名称
String photoName = date + System.currentTimeMillis()+ "." + sufixPhoto;
log.info("图片被上传到了:{}",filePath+photoName);
try {
is = photo.getInputStream();
os = new FileOutputStream(new File(filePath+photoName));
FileCopyUtils.copy(is, os);
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
os.flush();
os.close();
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
hashMap.put("ID",dbMsPhoto.getId());
hashMap.put("tips",dbMsPhoto.getTips());
hashMap.put("crtdt",dbMsPhoto.getCrtdt()+"");
hashMap.put("location",dbMsPhoto.getLocation());
hashMap.put("path",dbMsPhoto.getPath()+dbMsPhoto.getFname());
photoMap.add(hashMap);
}
}
//照片上传成功后返回照片信息到页面,用于更新页面显示的照片信息,便于删除是获取相关信息
}
}catch (Exception e){
e.printStackTrace();
return new CommonResult(StatusCode.SAVEFAIELD);
}
return new CommonResult(StatusCode.SAVESUCCESS);
}
-
这里是一段比较基本的图片上传代码了,当我们上传完图片之后发现打印的路径
-
路径为:C:\Users\user\AppData\Local\Temp\tomcat-docbase.8401.4328720503329668856\
我们顺着路径去查看这样的文件:
有大量的这种生成的tmp文件,当然图片也会被相应的保存在其中的某个文件路径下
2.上传完图片如何获取?
通过: http://localhost:8401/ + 拼接上自己的绝对路径(就是在上面获取的路径)+ 图片名即可以获取
- 顺着返回的路径访问图片:
正常获取到
更多推荐
已为社区贡献7条内容
所有评论(0)