1. 程式人生 > >springmvc文件上傳tomcat虛擬路徑設置

springmvc文件上傳tomcat虛擬路徑設置

res wid 參數 filename clip inpu 時間轉換 -m date

1.加載架包

commons-fileupload.jar

commons-io-2.4.jar

2.在一些文件存儲量很小的工程中,一般都是把上傳的文件放置在工程本身的目錄下,但當上傳的文件的量越來越大的時候,工程本身的文件夾容量也會越來越大,不利於工程 的打包和部署,工程的啟動和運行也會受到影響,所以在這裏是用了本地的盤符來存儲文件,並設置虛擬路徑來訪問文件,用的是tomcat 7

在MyEclipse工具中雙擊Tomcat,在web modules頁面中設置虛擬路徑

技術分享圖片

當在網址中訪問/pic路徑時就可以訪問到本地的F:\java\upload文件路徑

3.在springmvc.xml配置文件中配置文件解析器

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize">
<value>5242880</value>
</property>
</bean>

4.編寫文件上傳Controller類

/**
* 參數:上傳的文件,保存路徑,保存文件名
* @throws IOException
* @throws IllegalStateException
* */
@RequestMapping("uploadImg.action")
public String upload(Model model,@RequestParam MultipartFile file) throws IllegalStateException, IOException{

String savePath = "F:\\java\\upload";//upload文件夾路徑
String fileName = file.getOriginalFilename();//獲取文件名
String date = null;//系統日期
String newFileName = null;//存儲後的文件名
createFold = new CreateFold();//獲取當前系統日期,創建當天的保存文件夾
String path = null;//最終保存的文件路徑

if(file!=null&&fileName!=null&&fileName.length()>0){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
date = sdf.format(new Date());//獲取系統時間轉換為字符串
path = createFold.createFoldFile(savePath, date);//在指定的路徑文件夾中創建當天的文件夾保存上傳的文件
newFileName = UUID.randomUUID()+fileName.substring(fileName.lastIndexOf("."));
File newFile = new File(path+newFileName);
file.transferTo(newFile);//把文件存儲到指定路徑中
}
model.addAttribute("img", date+"/"+newFileName);

return "jsp/ImgUploadTest";
}

CreateFold類:

/**
* String path:在哪個路徑下創建文件夾
* String date:當前系統日期字符串
* 返回值:新創建的文件夾路徑
* **/
public String createFoldFile(String path,String date){
String newPath = path+"\\"+date;
File fold = new File(newPath);
if(!fold.exists()){
fold.mkdir();
}
return newPath+"\\";
}

5.編寫前段頁面ImgUploadTest.jsp

<form action="uploadImg.action" method="post" enctype="multipart/form-data">
<c:if test="${img!=null }">
<img src="/pic/${img }" width="100" height="100">
</c:if>
<input type="file" name="file"><br>
<input type="submit" value="上傳">
</form>

springmvc文件上傳tomcat虛擬路徑設置