上傳圖片到指定路徑
阿新 • • 發佈:2018-11-11
根據指定路徑,上傳檔案(照片)到本地磁碟
有時候我們在做專案的時候,需要上傳一些圖片檔案,但是,又存在無法上傳到專案根路徑的情況發生,這時候根據需要,我們可以上傳一些檔案或者圖片到本地磁碟空間,等到專案部署之後,相應的圖片會儲存在部署的伺服器上,開發環境就先上傳到本地磁碟的一個具體路徑,運用Java程式碼如何實現呢?下面是我的一些具體方法:
上傳圖片具體操作
1.配置檔案內:配置路徑資訊
#圖片儲存路徑 本地磁碟C 下面的import資料夾內放置上傳的檔案
import.file.savePath=c:/import
2.控制層:用@value註解注入檔案儲存路徑
@Value("${import.file.savePath}")
private String importPath;
3.控制層:上傳程式碼部分
/*
*適用於上傳一些指定資訊的圖片,用於某些特定的展示,
*後臺規定了檔名,所以重複上傳會把過往上傳的相同名字的檔案刪除覆蓋!
*但是檔案字尾名會和原檔案保持一致,防止展示圖片時瀏覽器不相容
**/
@RequestMapping(value="/Photo/importPhoto",method = {RequestMethod.POST , RequestMethod.GET})
public void importPhoto(MultipartFile importPhoto , HttpServletRequest request, HttpServletResponse response) throws IOException{
try{
//獲取上傳檔案的名稱
String fileName = importPhoto.getOriginalFilename();
//擷取引數之後剩餘的字串並返回(返回檔名中“.”的索引值),獲取上傳圖片的字尾名
String ext = fileName.subString(fileName.indexOf("."));
//根據指定儲存路徑新建file物件
File flist = new File(importPath) ;
if(!importPath.isEmpty()){
//檢查指定路徑下是否有資料夾,沒有建立相應資料夾
flist.mkdir();
}
//檢視指定路徑下的資料夾內的檔案
for(File f : flist.listFiles()){
if(f.getName().contains("檔名")){
//將指定的檔案刪除
f.delete();
}
}
//圖片上傳的路徑和上傳後的名稱+原始字尾名
File file2 = new File(importPath,"檔名"+ext);
importPhoto.transferTo(file2);
//上傳成功傳送給前臺的提示資訊
response.getWriter().write("true");
} catch (Exception e){
e.printStackTrace();
//上傳失敗,有異常傳送給前臺的提示資訊
resposne.getWriter().write("false");
}
}