最近搜索

Spirng boot请求图片地址 或者 文件地址 路径 映射

浏览:590
管理员 2020-06-11 01:22


新建下面的类


package com.java456.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

/**
 * 图片绝对地址与虚拟地址映射
 */
@Configuration
public class WebMvcConfig extends WebMvcConfigurerAdapter {
	
  @Override
  public void addResourceHandlers(ResourceHandlerRegistry registry) {

	//文件磁盘图片url 映射
	//配置server虚拟路径,handler为前台访问的目录,locations为files相对应的本地路径
registry.addResourceHandler("/upload_image_01/**").addResourceLocations("file:"+ MyUtil.uploadPath);	
//registry.addResourceHandler("/userImage/**").addResourceLocations("file:D:\\userImages\\");
  }
 
}



配置文件添加下面


uploadPath=D://WebUploadFile/sut_upload/



 /home/apache-tomcat-8.5.29/webapps/ROOT/  linux服务这样配置。
uploadPath=D://idea_space/qr_code/src/main/webapp/



上传文件接口修改如下。

/**
 * /admin/blog/add_cropper_image
 * imgData=  data:image/png;base64,iVBORw0KGgoAAAiVBORw0KGgoAAAiVBORw0KGgoAAA后面非常多的字符,就是imgData
 */
@ResponseBody
@RequestMapping("/add_cropper_image")
public JSONObject add_cropper_image(@RequestParam(value = "imgData", required = false) String imgData, HttpServletResponse response, HttpServletRequest request) throws Exception {
    JSONObject result = new JSONObject();

    //取得根目录带d://dxxxxx/tomcat/ruzhou/
    //String webPath = request.getServletContext().getRealPath("");
    String webPath = MyUtil.uploadPath; // D://WebUploadFile/dangan_upload/

    String uploadFile = "/static/upload_image/stu_cover/" + DateUtil.formatDate(new Date(), "yyyyMMdd") + "/";
    String fileName = DateUtil.formatDate(new Date(), "yyyyMMddHHmmss") + ".jpg";

    //调用产生文件夹的方法
    FileUtil.makeDirs(webPath + uploadFile);

    imgData = imgData.replace("data:image/png;base64,", "");

    Base64Util.GenerateImage(imgData, webPath + uploadFile + fileName);
    result.put("success", true);
    result.put("path", "/upload_image_01"+uploadFile + fileName);
    return result;
}


public class MyUtil {
	
	//上传文件路径  从配置文件 初始化。
	public static String uploadPath = "";	



configservice

@Value("${uploadPath}")
private String uploadPath;




@Override
public void init_properties() {
    MyUtil.uploadPath = uploadPath;
}



在init方法中初始化配置文件。


configService.init_properties();





映射到本地项目上面。


	配置文件改成这样。
	
	uploadPath=D://idea_space/stu_info_manage/src/main/webapp/	




之前的图片路径,

/static/upload_image/blog_cover/20240324/20240324113545.jpg

改成/upload_image_01/static/upload_image/blog_cover/20240324/20240324113545.jpg

就可以使用了。


这个就相当于是,upload_image_01这个路径 ,会到webapp下面找去找,static刚好和webapp目录对应上。



这个有个问题 就是删除会出问题。

删除就路径就是。 

D://idea_space/stu_info_manage/src/main/webapp/upload_image_01/static/upload_image/blog_cover/20240324/20240324113545.jpg

实际情况就是,webapp下面没有upload_image_01



联系站长

站长微信:xiaomao0055

站长QQ:14496453