http://blog.163.com/shuaiandy@126/blog/static/86432749201561191016970
* 處理圖片
* @param myfiles
* @return
*/
publicstaticListimageHandle(MultipartFile[]myfiles,HttpServletRequestrequest){
//處理上傳圖片
ListimgPathList=newArrayList();
for(MultipartFilemyfile:myfiles){
if(myfile.isEmpty()){
System.out.println("文件未上傳");
}else{
System.out.println("文件長度: "+myfile.getSize());
System.out.println("文件類型: "+myfile.getContentType());
System.out.println("文件名稱: "+myfile.getName());
System.out.println("文件原名: "+myfile.getOriginalFilename());
System.out.println("========================================");
//? ? ? ? ? ? ? ? //如果用的是Tomcat服務(wù)器姜盈,則文件會上傳到\\%TOMCAT_HOME%\\webapps\\YourWebProject\\upload\\文件夾中
//? ? ? ? ? ? ? ? String realPath = request.getSession().getServletContext().getRealPath("/upload");
//使用自定義文件資源庫
StringrealPath="D:/doctorImg";
//這里不必處理IO流關(guān)閉的問題馋评,因為FileUtils.copyInputStreamToFile()方法內(nèi)部會自動把用到的IO流關(guān)掉,我是看它的源碼才知道的
try{
//重置文件名
longtime=System.currentTimeMillis();
StringtimeStr=String.valueOf(time);
String[]originalFileName=myfile.getOriginalFilename().split("\\.");
StringfileName=timeStr+"."+originalFileName[1];
FileUtils.copyInputStreamToFile(myfile.getInputStream(),newFile(realPath,fileName));
//配置圖片訪問路徑
Stringip="http://localhost:8080/path";
imgPathList.add(ip+"/"+fileName);
}catch(IOExceptione){
e.printStackTrace();
returnnull;
}
}
}
returnimgPathList;
}
SpringMVC配置:
10485760
so,這樣就能把圖片上傳到D:\doctorImg這個目錄下了告喊,but嘿悬,這個目錄下的圖片是不能在瀏覽器上查看的齿兔。so仆救,這里還需要做tomcat虛擬映射。
tomcat配置:
setp1:在C:\Program Files\Apache Software Foundation\Tomcat 7.0\conf\Catalina\localhost這個localhost目錄下創(chuàng)建任意名的xml文件膳沽。這里比如創(chuàng)建了一個path.xml汗菜。然后這個文件內(nèi)容如下:
docBase="D:\doctorImg"
privileged="true"
reloadable="false"
debug="0"
workDir=""/>
ps:docBase為spring上傳圖片的文件目錄。
setp2: restart tomcat
到這里就行了挑社。
說明:比如后端上傳一張圖片pic1.jpg到D:\doctorImg目錄下陨界,然后訪問地址為:http://localhost:8080/path/pic1.jpg
必須到tomcat目錄下,手動啟動M醋琛>瘛!才能訪問到阱当,idea啟動的tomcat 的配置和tomcat中的不一樣G卫!弊添!