springmvc文件上传tomcat虚拟路径设置

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 alt="" src="/pic/${img }" width="100" height="100">
</c:if>
<input type="file" name="file"><br>
<input type="submit" value="上传">
</form>

猜你喜欢

转载自www.cnblogs.com/lihaitao33/p/8968912.html