springboot 靜態資源訪問,和文件上傳 ,以及路徑問題

springboot 靜態資源訪問:html

 這是springboot 默認的靜態資源訪問路徑  訪問順序依次從前到後(http://localhost:8080/bb.jpg)web

spring.resources.static-locations = classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/   spring

 

 

自定義靜態資源訪問路徑 (http://localhost:8080/bb.jpg)數組

# 靜態文件請求匹配方式 (只要是請求路徑配到到了 就訪問下面配置的默認靜態資源路徑)
spring.mvc.static-path-pattern=/**
# 修改默認的靜態尋址資源目錄 多個使用逗號分隔
spring.resources.static-locations = classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,classpath:/upload/tomcat

//自定義 不在項目下的路徑(好比: c:/upload2)  經過http://localhost:8080/bb.jpg 也能訪問  記得加配置springboot

# 靜態文件請求匹配方式 (只要是請求路徑配到到了 就訪問下面配置的默認靜態資源路徑)
spring.mvc.static-path-pattern=/**
# 修改默認的靜態尋址資源目錄 多個使用逗號分隔
spring.resources.static-locations = classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,classpath:/upload/,classpath:/ c:/upload2服務器

springboot  實現多文件上傳mvc

 對於上傳路徑問題  能夠經過上面講的自定義路徑來進行配置:下載到電腦的某個位置而後進行訪問 和上面的配置如出一轍 只是classpath=>fileapp

web.upload-path=/Users/jack/Desktop
spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,classpath:/test/,file:${web.upload-path}

下面貼代碼:(文件下載到tomcate下)

 html:dom

<body>
<form enctype="multipart/form-data" method="post" action="/upload">
文件:<input type="file" name="head_img"/>
姓名:<input type="text" name="name"/>
<input type="submit" value="上傳"/>
</form>

</body>

下載工具類:
/**
* 提取上傳方法爲公共方法
* @param uploadDir 上傳文件目錄
* @param file 上傳對象
* @throws Exception
*/
private void executeUpload(String uploadDir,MultipartFile file) throws Exception
{
//文件後綴名
String suffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
//上傳文件名
String filename = UUID.randomUUID() + suffix;
//服務器端保存的文件對象
File serverFile = new File(uploadDir + filename);
//將上傳的文件寫入到服務器端文件內
file.transferTo(serverFile);
}

controller:
@RequestMapping(value = "/uploads",method = RequestMethod.POST)
public @ResponseBody String uploads(HttpServletRequest request,MultipartFile[] file)
{
try {
//上傳目錄地址
// 隨意 String uploadDir = C:/img/;
String uploadDir=ResourceUtils.getURL("classpath:").getPath()+"/static/up/";
System.out.println(uploadDir);
//若是目錄不存在,自動建立文件夾
File dir = new File(uploadDir);
if(!dir.exists())
{
dir.mkdir();
}
//遍歷文件數組執行上傳
for (int i =0;i<file.length;i++) {
if(file[i] != null) {
//調用上傳方法
executeUpload(uploadDir, file[i]);
}
}
}catch (Exception e)
{
//打印錯誤堆棧信息
e.printStackTrace();
return "上傳失敗";
}
return "上傳成功";
}

 而後文件下載路徑就到了tomcate 下。

須要配置

web.upload-path=/C:/img/
spring.resources.static-locations = classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,classpath:/templates/,file:${web.upload-path},file:/static/

也能夠經過 http://localhost:8080/up/bb.jpg 訪問

相關文章
相關標籤/搜索