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服务器,则文件会上传到\\%TOMCAT_HOME%\\webapps\\YourWebProject\\upload\\文件夹中
// String realPath = request.getSession().getServletContext().getRealPath("/upload");
//使用自定义文件资源库
StringrealPath="D:/doctorImg";
//这里不必处理IO流关闭的问题,因为FileUtils.copyInputStreamToFile()方法内部会自动把用到的IO流关掉,我是看它的源码才知道的
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目录下创建任意名的xml文件。这里比如创建了一个path.xml。然后这个文件内容如下:
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目录下,手动启动!!!才能访问到,idea启动的tomcat 的配置和tomcat中的不一样!!!