上传图片

 以此方法来确定上传的文件夹地址。

/**
* 文件上传配置类,结合properties配置
* 最大单个文件上传10MB
* 总数据最大100MB
* */
@Configuration
public class FileUploadConfig {
@Bean
public MultipartConfigElement multipartConfigElement() {
MultipartConfigFactory factory = new MultipartConfigFactory();
// 单个数据大小
factory.setMaxFileSize(DataSize.parse("102400KB")); // KB,MB
// 总上传数据大小
factory.setMaxRequestSize(DataSize.parse("1024000KB"));
return factory.createMultipartConfig();
}
}

此类来配置,上传的文件最大为多少。

@Configuration
public class FileConfig extends WebMvcConfigurerAdapter {
@Value("${imagesPath}")
private String mImagesPath;

@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
if (mImagesPath.equals("") || mImagesPath.equals("${imagesPath}")) {
String imagesPath = FileConfig.class.getClassLoader().getResource("").getPath();
if (imagesPath.indexOf(".jar") > 0) {
imagesPath = imagesPath.substring(0, imagesPath.indexOf(".jar"));
} else if (imagesPath.indexOf("classes") > 0) {
imagesPath = "file:" + imagesPath.substring(0, imagesPath.indexOf("classes"));
}
imagesPath = imagesPath.substring(0, imagesPath.lastIndexOf("/")) + "/picture/";
mImagesPath = imagesPath;
}
registry.addResourceHandler("/api/upload/**").addResourceLocations(mImagesPath);
super.addResourceHandlers(registry);
}
}
这段代码主要是实现 Spring Boot 中静态资源的映射,将指定路径下的图片资源映射到指定 URL 地址上。

  在这个方法中,"/api/upload/**" 表示 URL 路径,mImagesPath 表示图片资源路径。具体的处理逻辑为:

  1. 如果 mImagesPath 为空或等于 ${imagesPath},则获取当前类加载器所在路径下的图片资源路径。
  2. 根据当前类加载器所在路径是否处于 jar 包中或处于 classes 目录下,对图片资源路径进行调整。
  3. 将得到的图片资源路径与 "/picture/" 拼接作为最终的图片资源路径,并将其注册到 "/api/upload/**" 的资源处理器上。
    @Value("${imagesPath}")
private String mImagesPath;
这部分取得是配置文件中的值

 



posted @ 2023-06-12 14:26  斑马还不想睡  阅读(72)  评论(0编辑  收藏  举报