Java怎么定义图片公共路径_【Java】springboot配置图片访问路径
springboot如何配置,就可以在地址欄輸入http://localhost:9090/17AD93E86EB44287BA0D871A37017597.jpg就可以訪問到圖片
回答
需要添加下Springboot訪問靜態資源的Jar文件
org.springframework.boot
spring-boot-starter-thymeleaf
直接去掉這兩個配置就行,自動已經映射了,這個目錄本來就是靜態資源部署目錄
我之前做文件上傳的時候也想上傳到項目resources下,可以上傳上去,但是不能通過這樣的URL訪問到。
琢磨了半天,好像是因為SpringBoot項目啟動之后,它會在C盤的C:\Users\User\AppData\Local\Temp這個文件夾內創建一個新的服務器,每次重啟都會創建,所以每次重啟之后,就相當于是在一個新的服務器上部署了項目,之前上傳的文件都在另外一個服務器上,所以文件都沒有了。。。。重新上傳。
這是我的代碼:
private SimpleDateFormat simpleDateFormat = new SimpleDateFormat("\\yyyy\\MM\\dd");
public JsonResult uploadFile(MultipartFile file, HttpServletRequest request) {
//1.獲取項目根路徑,結果是:C:\Users\User\AppData\Local\Temp\tomcat-docbase.766171933481555296.8081,File.separator是系統分隔符
String rootPath = request.getSession().getServletContext().getRealPath(File.separator);
//2.拼接目錄,結果是: /images/2020/03/15
String directory = "\\images" + simpleDateFormat.format(new Date());
//3.現在目錄可能還不存在,創建目錄(全路徑的目錄),FileUtil是自定義的工具
FileUtil.createDir(rootPath + directory);
//4.給文件重新設置一個名字
String newFileName = FileUtil.getNewFileName(file.getOriginalFilename());
//5.創建這個新文件
File newFile = new File(rootPath + directory + "\\" + newFileName);
//6.復制操作
try {
file.transferTo(newFile);
//文件在服務器上的保存位置格式:/images/2020/03/22/asd45~~~~asdqwe.jpg
String fileName = directory + File.separator + newFileName;
//可通過此路徑fileAllPath在瀏覽器訪問 協議 地址 端口號 目錄(/images/2020/03/15) 文件名
String fileAllPath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + directory + "\\" + newFileName;
HashMap map = new HashMap<>(2);
map.put("fileName", fileName);
map.put("fileAllPath", fileAllPath);
return JsonResult.builder().data(map).message("上傳成功!").code("1").build();
} catch (IOException e) {
return JsonResult.builder().data(null).message("IO異常!").code("-1").build();
}
}
在上面代碼中fileAllPath就是可以直接在瀏覽器上訪問的URL
工具類創建目錄的方法:
public static boolean createDir(String destDirName) {
File dir = new File(destDirName);
if (dir.exists()) {
return false;
}
//如果結尾沒有文件分隔符
if (!destDirName.endsWith(File.separator)) {
destDirName += File.separator;
}
//創建單個目錄
return dir.mkdirs();
}
目前我還沒發現可以上傳到你說的這個位置并且可以訪問的方法,針對重啟就沒有了之前上傳的文件的解決方法:
用圖片服務器
項目打成war包,放在自己的tomcat服務器里面
總結
以上是生活随笔為你收集整理的Java怎么定义图片公共路径_【Java】springboot配置图片访问路径的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql第四章_MySQL必知必会--
- 下一篇: java initcause_Java