1、springboot 2.x

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);}@BeanMultipartConfigElement 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;@Beanpublic SecutityInterceptor securityInterceptor() {return new SecutityInterceptor();}@Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(securityInterceptor()).addPathPatterns("/**").excludePathPatterns("/login/**").excludePathPatterns("/deviceCmd/**").excludePathPatterns("/image/**").excludePathPatterns(staticAccessPath);}@Overridepublic void addCorsMappings(CorsRegistry registry) {registry.addMapping("/**").allowedOrigins("*").allowCredentials(true).allowedMethods("*").maxAge(3600);}@Overridepublic 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);}}

访问:成功

springboot 上传图片存储在后台,并指定存储路径相关推荐

  1. LiveGBS流媒体平台GB/T28181功能-如何将海康大华宇视华为摄像头视频流集中存储云端录像分布式录像存储

    LiveGBS如何将海康大华宇视华为摄像头视频流集中存储云端录像分布式录像存储 1.云端录像存储 2.手动配置录像 2.1.按需录像 2.2.一直录像 3.录像计划 3.1.录像计划入口 3.2.新增 ...

  2. vue 上传图片到腾讯云对象存储

    需求:上传图片到腾讯云对象存储,返回图片链接地址. 大概流程: 腾讯云对象存储(Cloud Object Storage,COS)是腾讯云提供的一种存储海量文件的分布式存储服务,用户可通过网络随时存储 ...

  3. Vue+Springboot上传图片将 Base64 码转换为图片保存在指定文件夹

    Vue+Springboot上传图片将 Base64 码转换为图片保存在指定文件夹 前言 一.Vue 前端 一.五 注意!!! 二.Springboot 后端 引入Base64依赖 在项目里新建 ut ...

  4. 创建一个存储函数,返回指定员工的姓名,薪水和年收入

    /* 创建一个存储函数,返回指定员工的姓名,薪水和年收入 */ create or replace function queryEmp2(eno in number, empname out VARC ...

  5. mysql数据存储到指定位置_Mysql数据库表分区存储到指定磁盘路径

    . 前提: mysql5.6.6以上的版本以上的版本才支持单表指定目录,且目录权限是MySQL:mysql.  在mysql中数据文件存放于在my.cnf中datadir指定的路径,使用的表引擎不同产 ...

  6. java 安卓下载文件_GitHub - Charay/downloadfile: 使用Retrofit2+Rxjava+Rxandroid+okhttp的方式下载文件并存储到sd卡指定目录...

    downloadfile 使用Retrofit2+Rxjava+Rxandroid+okhttp的方式下载文件并存储到sd卡指定目录 使用: gradle Step 1.在工程build.gradle ...

  7. MySQL指定存储引擎命令_MySQL常用指令(2)——存储引擎

    MySQL常用指令(2)--存储引擎 查询MySQL支持的存储引擎 查询全部支持的引擎: show engines; ";"可以使用"\g"等价替换,而使用&q ...

  8. 打开dll文件时模块加载失败,请确保二进制存储在指定的路径中,或者调试它以检查该二进制或相关的.DLL文件是否有问题

    ** 打开dll文件时模块加载失败,请确保二进制存储在指定的路径中,或者调试它以检查该二进制或相关的.DLL文件是否有问题 **打开dll文件时模块加载失败,电脑提示请确保二进制存储在指定的路径中,或 ...

  9. JS获取input框用户输入信息作为数组存储传输给后台数据库操作存储方法

    JS获取input框用户输入信息作为数组存储传输给后台数据库操作存储方法 获取input框用户输入信息数组存储 var datas = {Id: idData.id,OrderDetailCode: ...

最新文章

  1. Linux抓包工具tcpdump详解
  2. vacode允许c_Visual Studio Code 配置C/C++环境
  3. [转载]树莓派新版系统上使用mjpg-streamer获取USB摄像头和树莓派专用摄像头RaspiCamera图像...
  4. 在swt中获取jar包中的文件 uri is not hierarchical
  5. 陆基制导系统地面站布设策略
  6. Windows10系统安装 .NET Framework 3.5
  7. Apache JMeter 记一次使用HTTP工具POST提交JSON数据进行送积分高并发压测(二)
  8. 甲骨文提供免费HR工具,助力客户保障员工安全
  9. java编译异常和运行时异常_浅谈异常结构图、编译期异常和运行期异常的区别...
  10. 只读user表空间损坏(RMAN修复)
  11. 模拟铁路12306售票系统的设计与实现
  12. python 按比例缩小图片
  13. 金山wps的面试经历
  14. 修复未能连接一个window服务器,未能连接一个windows服务的修复方法
  15. 将.m3u8转换为视频文件保存到本地
  16. java.io.ioexception 设备未就绪_AxisFault faultString: java.io.IOException: 设备未就绪。
  17. 教师招聘计算机面试技能测试,教师招聘面试中技能测试指什么
  18. 详述光波分复用(WDM)技术
  19. 富士康和苹果都后悔了,将制造重心转回国内,上演高速路口抢人
  20. 四六级听力考试高频词汇分类记忆-职场工作类

热门文章

  1. 高新技术企业的申报条件及要求
  2. jc机制是什么_单片机中jc指令表示什么?有什么用?
  3. ES8JC-ASEMI快恢复二极管ES8JC
  4. 多个VLC播放器同步播放本地VCam视频流
  5. css filter blur 白边,解决css3毛玻璃效果(blur)有白边问题
  6. 系统分析师-软件工程知识点
  7. Sql server如果存在就更新,不存在就插入
  8. html改变按钮水平位置,div中button水平居中
  9. 小米4c原版android哪个好,小米4c和小米4哪个好
  10. 铨顺宏RFID:服饰行业和店铺管理与解决方法是如何利用RFID技术