有关上传图片的后端实现

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中的不一样!!!

你可能感兴趣的:(有关上传图片的后端实现)