Springbootアップロード画像はバックグラウンドに保存され、保存パスを指定します
3789 ワード
1、springboot 2.x
2、application.properties
クラスを起動するにはmultipartConfigElementメソッドを追加する必要があります
ブロッカーの構成で、addResourceHandlersメソッドを追加し、アクセスパスを指定します.addInterceptorsメソッドはstaticAccessPathをフィルタリングする必要があります
最後にファイルをアップロードする方法です
アクセス:成功
2、application.properties
#
spring.servlet.multipart.maxFileSize=10Mb
#
spring.servlet.multipart.maxRequestSize=10Mb
# :D:\home\capture\5\*.jpg( )
# Url:http://ip:port/hg-zhwg/upload/5/*.jpg
# (window d/e/f , linux /)( Linux Windows )
#file.uploadFolder=/
file.uploadFolder=d://
# ( )
zhwg.captrue.image.path=home/capture/
# ( )
file.staticAccessPath=/upload/**
クラスを起動するにはmultipartConfigElementメソッドを追加する必要があります
public class HgZhwgApplication {
@Value("${file.uploadFolder}")
private String uploadFolder;
public static void main(String[] args) {
SpringApplication.run(HgZhwgApplication.class, args);
}
@Bean
MultipartConfigElement multipartConfigElement() {
MultipartConfigFactory factory = new MultipartConfigFactory();
factory.setLocation(uploadFolder);
return factory.createMultipartConfig();
}
}
ブロッカーの構成で、addResourceHandlersメソッドを追加し、アクセスパスを指定します.addInterceptorsメソッドはstaticAccessPathをフィルタリングする必要があります
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
@Value("${file.staticAccessPath}")
private String staticAccessPath;
@Value("${zhwg.captrue.image.path}")
private String captureImagePath;
@Value("${file.uploadFolder}")
private String uploadFolder;
@Bean
public SecutityInterceptor securityInterceptor() {
return new SecutityInterceptor();
}
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(securityInterceptor()).addPathPatterns("/**").excludePathPatterns("/login/**")
.excludePathPatterns("/deviceCmd/**").excludePathPatterns("/image/**")
.excludePathPatterns(staticAccessPath);
}
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**").allowedOrigins("*").allowCredentials(true).allowedMethods("*").maxAge(3600);
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler(staticAccessPath).addResourceLocations("file:" + uploadFolder + captureImagePath);
}
}
最後にファイルをアップロードする方法です
@RequestMapping("/recive/{devType}/{cmdLogId}")
public void reciveCameraCapture(@PathVariable("devType") String devType, @PathVariable("cmdLogId") String cmdLogId,
@RequestParam("captureImg") MultipartFile captureImg,
@RequestParam(value = "cameraPreviewId", required = false) Long cameraPreviewId,
@RequestParam("token") String token, HttpServletRequest request, HttpServletResponse response) {
if (captureImg == null) {
return;
}
//
String filename = captureImg.getOriginalFilename();
//
String prefix = filename.substring(filename.lastIndexOf(".") + 1);
String destFilename = UUID.randomUUID().toString().replace("-", "") + "." + prefix;
File fileUrl = new File(uploadFolder + captureImagePath + devType);
if (!fileUrl.exists()) {
fileUrl.mkdirs();
}
File destImage = new File(fileUrl, destFilename);
logger.debug(" :" + destImage);
try {
captureImg.transferTo(destImage);
} catch (IOException e) {
logger.error(" ", e);
}
}
アクセス:成功