java后端保存的本地图片通过ip+端口直接访问

news2024/9/22 3:46:47

直接上代码吧
 

package com.ydx.emms.datapro.controller;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import java.io.File;

/**
* @Description: 通过ip和端口直接查看图片
* @param
* @author zlw
* @date 2024/9/4 15:09
*/
@Configuration
public class TPicController implements WebMvcConfigurer {
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        //虚拟url路径
        registry.addResourceHandler("/file/**")
                .addResourceLocations("file:" + System.getProperty("user.dir").replace(File.separatorChar, '/') + "/file/");
        //真实本地路径
    }
}

访问:http://127.0.0.1:端口/file/1.jpg

补充:从一个文件夹移动某一个文件到另一个文件夹

@RequestMapping(value = "/moveAlarmPic")
Result moveAlarmPic(HttpServletRequest request) {
    // 获取请求参数
    Map<String, Object> params = ParamUtil.getParams(request);
    String ip = MapUtils.getString(params, "ip");
    String time = MapUtils.getString(params, "time");
    // 参数判断
    if (ParamUtil.isOneEmpty(ip, time)) {
        return new Result("rest_ACK", Result.Code.ParamError.value(), false, "参数不正确,必填参数有为空");
    } else {
        //在告警文件夹下创建指定目录
        makeDir(ip);
        //移动指定的图片
        // 源文件路径
        Path sourcePath = Paths.get(System.getProperty("user.dir") + "/pic/" + ip+"/"+time+".jpg");
        Path sourcePathCsv = Paths.get(System.getProperty("user.dir") + "/pic/" + ip+"/"+time+".csv");
        // 目标文件夹路径
        Path destinationPath = Paths.get(System.getProperty("user.dir").replace(File.separatorChar, '/') + "/file/"+ip);
        // 目标文件完整路径
        Path targetPath = destinationPath.resolve(sourcePath.getFileName());
        Path targetPathCsv = destinationPath.resolve(sourcePathCsv.getFileName());
        try {
            // 复制图片
            Files.copy(sourcePath, targetPath, StandardCopyOption.REPLACE_EXISTING);
            //复制矩阵
            Files.copy(sourcePathCsv, targetPathCsv, StandardCopyOption.REPLACE_EXISTING);
            System.out.println("文件复制成功!");
            return new Result("rest_ACK", Result.Code.Success.value(), true);
        } catch (IOException e) {
            System.out.println("文件复制失败: " + e.getMessage());
            return new Result("rest_ACK", Result.Code.Success.value(), false);
        }
    }
}
/**
 * @param
 * @Description: 指定目录下创建文件夹
 * @author zlw
 * @date 2024/7/26 14:06
 */
public void makeDir(String dirName) {
    // 指定要创建的文件夹路径
    String directoryPath = System.getProperty("user.dir").replace(File.separatorChar, '/') + "/file/"+dirName;
    // 创建File对象
    File dir = new File(directoryPath);
    // 如果文件夹不存在,则创建文件夹
    if (!dir.exists()) {
        boolean result = dir.mkdir();
        if (result) {

            System.out.println("文件夹创建成功:" + directoryPath);
        } else {
            System.out.println("文件夹创建失败:" + directoryPath);
        }
    } else {
        System.out.println("文件夹已存在:" + directoryPath);
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2108997.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Docker Image 命令

文章目录 目录 文章目录 1 . Docker镜像是什么? 2 . 镜像命令详解 docker images docker tag docker pull docker rmi docker save 总结 1 . Docker镜像是什么? Docker image 本质上是一个 read-only 只读文件&#xff0c; 这个文件包含了文件系统、 源码、库文件…

性能测试经典案例解析——远程培训系统

各位好&#xff0c;我是 道普云 一站式云测试SaaS平台。一个在软件测试道路上不断折腾十余年的萌新。 欢迎关注我的专栏和我的主页 道普云 文章内容具有一定门槛&#xff0c;建议先赞再收藏慢慢学习&#xff0c;有不懂的问题欢迎私聊我。 希望这篇文章对想提高软件测试水平…

负载均衡调度器--LVS

文章目录 集群和分布式集群分布式 LVS介绍LVS特点LVS工作原理LVS集群架构 LVS集群中的术语CIPVIPRSDIPRIP LVS集群的工作模式NAT模式DR模式DR模式的特点: TUN模式 LVS调度算法LVS相关软件ipvsadm 命令管理集群服务&#xff1a;增、改、删管理集群上的RS:增、改、删 创建集群 LV…

神经网络搭建的那点事

1.全连接网络 python&#xff1a; nn.Linear(in, out) matlab: layer fullyConnectedLayer(outputSize) layer fullyConnectedLayer(outputSize,Name,Value) 2.add和concat的区别 concat作用 concat是通道数的增加&#xff0c;也就是说描述图像本身的特征数&#xff08;通道…

ITK-高斯滤波

作者&#xff1a;翟天保Steven 版权声明&#xff1a;著作权归作者所有&#xff0c;商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处 高斯滤波原理 高斯滤波&#xff08;Gaussian Blur&#xff09;是数字图像处理中常见的一种平滑滤波器&#xff0c;旨在通过模糊处…

Python 从入门到实战8(字典)

我们的目标是&#xff1a;通过这一套资料学习下来&#xff0c;通过熟练掌握python基础&#xff0c;然后结合经典实例、实践相结合&#xff0c;使我们完全掌握python&#xff0c;并做到独立完成项目开发的能力。 上篇文章我们通过举例学习了python 中元组的定义及相关操作。今天…

css弹性盒子——flex布局

目录 ​编辑 一、flex容器的样式属性(父元素属性) display:flex 弹性盒子&#xff0c;实现水平排列,在父盒子设置&#xff0c;适用于单行/单列 justify-content 二、flex元素的样式属性(子元素属性) 1.flex-grow 2.flex-shrink 3.flex-basis 4.flex组合属性 flex:flex-…

【WPS Excel】复制表格时,提示“图片太大,超过部份将被截去“ 问题

WPS表格 2019版本 升级到 WPS最新版 WPS-支持多人在线协作编辑Word、Excel和PPT文档_WPS官方网站 使用最新版就能够解决这个问题&#xff0c;如果仍旧无法解决可以勾选如下配置 重启Excel解决。 请勾选&#xff1a;文件 - 选项 - 编辑 - 不提示且不压缩文件中的图像

无需更换摄像头,无需施工改造,降低智能化升级成本的智慧工业开源了。

智慧工业视觉监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒&#xff0c;省去繁琐重复的适配流程&#xff0c;实现芯片、算法、应用的全流程组合&#xff0c;从而大大减少企业级应用约95%的开发成本。用户只需在界面上…

Linux系统下载并配置vscode(无废话)写C++

首先下载visual studio code 1.可以在应用商店下载 2.进入vscode官网Documentation for Visual Studio Code点击download>>点击下载.rpm 下载好之后打开vscode&#xff0c;先下载中文拓展&#xff08;可省略&#xff09; 然后下载c语言拓展 下载完之后打开设置&#xf…

Vue 使用接口返回的背景图片和拼图图片进行滑动拼图验证

一、背景 前两天发了一篇 vue-monoplasty-slide-verify 滑动验证码插件使用及踩坑_vue-monoplasty-slide-verify 引用后不显示-CSDN博客 这两天项目又需要通过接口校验&#xff0c;接口返回了背景图片和拼图图片&#xff0c;于是在网上找了一篇帖子&#xff0c;vue 图片滑动…

了解一下HTTP 与 HTTPS 的区别

介绍&#xff1a; HTTP是超文本传输协议。规定了客户端&#xff08;通常是浏览器&#xff09;和服务器之间如何传输超文本&#xff0c;也就是包含链接的文本。通常使用TCP【1】/IP协议来传输数据&#xff0c;默认端口为80。 HTTPS是超文本传输安全协议&#xff0c;具有CA证书。…

羲和能源大数据平台——Python数据绘图方法

1. 写在前面 目前论文对绘图的美观度要求越来越高&#xff0c;在气象领域呈现维度高&#xff0c;时空关联的特性&#xff0c;为了充分展示数据在各个维度的特性&#xff0c;选用合适的绘图方法至关重要&#xff0c;下图给出了如今在科研领域中个常用的各类图像&#xff1a;线型…

远程教育与学习:探索远程控制技术在教育领域的新机遇

什么适合会用到远程控制工具&#xff1f;如果你是运维、是设计或者外勤需要办公的一些资料文件&#xff0c;有远程控制工具工具的话就能轻松解决这些情况。为了保证电脑的安全我建议从官方网站进行下载&#xff0c;比如从向日葵远程控制官网下载就可以得到向日葵的官方正版。这…

Docker Container 常用命令

文章目录 目录 文章目录 1 . 什么是容器&#xff1f; 2 . 容器命令清单 docker create docker run docker ps docker logs docker exec docker kill docker container inspect docker cp docker rm docker export 总结 1 . 什么是容器&#xff1f; 通俗地讲&a…

C++设计模式——Command命令模式

一&#xff0c;命令模式的定义 命令模式是一种行为型设计模式。在实际开发场景中&#xff0c;命令模式将一个请求的处理或者一个具体操作封装为一个对象&#xff0c;从而可以让开发者根据不同的请求参数来生成不同的执行函数。 命令模式的本质是对具体命令的拆解和封装&#…

【Git远程仓库】将本地仓库推送到github(踩坑记录)

上一篇博客已经介绍了git本地仓库的基本操作&#xff0c;接下来记录一下如何将本地仓库上传到远程仓库中 远程仓库&#xff1a;托管在因特网的版本库&#xff0c;保存版本库的历史记录&#xff0c;多人协作 1. 创建远程版本库&#xff0c;得到远程仓库git地址 2. 本地仓库添加…

C#复习之内部类和分布类

知识点一&#xff1a;内部类 知识点二&#xff1a;分布类 知识点三&#xff1a;分部方法

DisplayManagerService启动-Android13

DisplayManagerService启动-Android13 1、DisplayManagerService启动1.1 简要时序图 2、DEFAULT_DISPLAY主屏幕添加3、默认屏幕亮度 1、DisplayManagerService启动 1.1 简要时序图 2、DEFAULT_DISPLAY主屏幕添加 3、默认屏幕亮度

C#复习之继承的基本规则

知识点一&#xff1a;基本概念 知识点二&#xff1a;基本语法 知识点三&#xff1a;实例 知识点四&#xff1a;访问修饰符的影响 知识点五&#xff1a;子类和父类的同名成员 总结&#xff1a;