图片上传工具类
packagecom.hi.hhy.utils;importorg.springframework.web.multipart.MultipartFile;importjavax.servlet.http.HttpServletRequest;importjava.io.File;importjava.io.IOException;importjava.util.ArrayList;importjava.util.List;importjava.util.UUID;importjava.util.stream.Collectors;/**
* @author hi
* @program: uni-java3
* @description: 文件上传
* @date 2021-05-31 15:01:00
*/publicclassUpImage{/**
* @param file 单个文件
* @param path 上传路径
* @param request HttpServletRequest 用于获取协议 端口 服务器名称
* @return java.lang.String 返回一个在线服务器访问地址
* @author
* @describe: 所有的上传都放在imgupload目录下
* @date 2021/5/31 17:41
*/publicstaticStringuploadImg(MultipartFile file,String path,HttpServletRequest request){//上传路径// d:/imgupload/aaa/bbb/ccc;// /home/imgupload/aa/bb/cc//获取配置静态资源上传文件夹 后面的路径String paths= path.substring(path.indexOf("imgupload")+9);//文件不为空时if(!file.isEmpty()){//拿到上传的文件名称String originalFilename= file.getOriginalFilename();//获取上传文件的后缀名String substring= originalFilename.substring(originalFilename.lastIndexOf('.'));//获得自定义文件名String filename= UUID.randomUUID()+substring;File f=newFile(path);if(!f.exists()){//不存在就创建文件夹
f.mkdirs();}try{
file.transferTo(newFile(path,filename));//返回访问地址 image 就是配置的静态资源访问路径String s=VisitSite.GetVisitSite(request)+"image"+paths+"/"+filename;//输出:http://localhost:8080/image/merchantimg/b6a27a5f-6a3c-4f0d-a9d2-7c05578204f5.jpgreturn s;}catch(IOException e){
e.printStackTrace();}}returnnull;}/**
* @param files 多个文件
* @param path 文件上传路径
* @param request
* @return java.lang.String 返回在线服务器访问路径
* @author
* @describe:
* @date 2021/6/10 13:49
*/publicstaticStringuploadImgs(MultipartFile[] files,String path,HttpServletRequest request){String paths= path.substring(path.indexOf("imgupload")+9);if(files.length>0){// System.out.println("进来了"+identity.length);//获取上传路径File file=newFile(path);if(!file.exists()){//不存在就创建文件夹
file.mkdirs();}List<String> list=newArrayList<>();for(MultipartFile multipartFile: files){if(!multipartFile.isEmpty()){String originalFilename= multipartFile.getOriginalFilename();//获取文件后缀名String substring= originalFilename.substring(originalFilename.lastIndexOf('.'));//获得自定义文件名String filename= UUID.randomUUID()+substring;try{//开始上传
multipartFile.transferTo(newFile(path,filename));String s=ServerAddress.GetServerAddress(request)+"image"+paths+"/"+filename;
list.add(s);}catch(IOException e){
e.printStackTrace();}}}//把list转为字符串以,隔String str= list.stream().collect(Collectors.joining(","));//这样就可以直接通过路径访问了//http://localhost:8080/image/commodityimg/f7079abc-a281-465e-889c-656e9e82ac63.png,http://localhost:8080/image/commodityimg/ac81a6ac-1e93-46d6-9482-f16f4938c0d2.jpgreturn str;}returnnull;}}
服务器访问地址前缀
packagecom.hi.hhy.utils;importjavax.servlet.http.HttpServletRequest;importjava.io.File;/**
* @author hi
* @program: uni-java3
* @description: 获取服务器访问地址
* @date 2021-05-30 14:56:23
*/publicclassServerAddress{publicstaticStringGetServerAddress(HttpServletRequest request){//可以返回当前页面使用的协议,http 或是 https;String scheme= request.getScheme();//可以返回当前页面所在的服务器的名字;String serverName= request.getServerName();//可以返回当前页面所在的服务器使用的端口,就是8080;int serverPort= request.getServerPort();String path= scheme+"://"+serverName+":"+serverPort+"/";return path;}}//输出:http://localhost:8080/
配置静态资源访问路径
packagecom.hi.hhy.config;importcom.hi.hhy.pojo.Upload;importorg.springframework.context.annotation.Configuration;importorg.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;importorg.springframework.web.servlet.config.annotation.ViewControllerRegistry;importorg.springframework.web.servlet.config.annotation.WebMvcConfigurer;importjava.io.File;/**
* @author hi
* @program: uni-java3
* @description:
* @date 2021-05-22 17:14:05
*/@ConfigurationpublicclassMyMvcConfigimplementsWebMvcConfigurer{@OverridepublicvoidaddResourceHandlers(ResourceHandlerRegistry registry){//配置静态资源访问路径//图片存放地址String path="d:/imgupload/";// String path = "/home/imgupload/";
registry.addResourceHandler("/image/**").addResourceLocations("file:"+path);}}