mavonEditor中的图片上传与删除(前后端交互)

2023-11-16

我设置的存储图片服务器的地址: D:\Program Files\apache-tomcat-9.0.43\webapps\ROOT\newsimg

1.图片上传

1.1.前端

// 文本上传图片事件处理函数
 imgAdd(pos, file) {
  var formdata = new FormData();
  formdata.append('file', file); //前端封装图片数据 ‘file’向后端传递的 name
  this.$http({ //调用 java 后端上传图片到服务器端
    url: 'news/newsCtl/newsupload', //自定义后端服务器地址,后端同文件上传功能
    data: formdata,
    method: "post",
    headers: {
      'Content-Type': 'multipart/form-data'
    },
  }).then((resp) => { //resp 后端响应数据
    //将服务器返回的图片地址插入到编辑器内
    this.$refs.md.$img2Url(pos, "http://127.0.0.1:8888/" + resp.data.data);
  })
}

1.1.后端

    /**
     * 图片上传
     *
     * @param file
     * @return
     * @throws IOException
     */
    @PostMapping("/newsupload")
    public CommonResult newsupload(@RequestParam("file") CommonsMultipartFile file) throws IOException {
        /*  图片存储
            1.图片存储到服务器端的硬盘
            2.必须在客户端可访问到
         */
        // 名字容易重复,进行改名
        String newfilename = new Date().getTime() + file.getOriginalFilename();
        // 后端存储地址
        String path = newsimgpath + "\\" + newfilename;
        file.transferTo(new File(path));// 保存入该地址
        CommonResult commonResult = new CommonResult(200, "newsimg/" + newfilename, "上传成功");
        return commonResult;
    }

1.3测试

开始服务器中没有第一张图片

上传图片

2. 图片删除

2.1前端

// 删除图片时间处理函数
imgDel(pos) {
  var imgUrl = pos[0]; //获取到图片服务器地址
  this.$http.get("/news/newsCtl/deleteImgpath", {
      params: {
        imgUrl: JSON.stringify(imgUrl)
      }
    })
    .then(function(res) {
      if (res.data.code == 200) {
        this.$message({
          message: res.data.message,
          type: "success"
        });
      }
    })
}

2.2后端

思路

1> 这里主要注意前端给后端传送的imgUrl地址,需要进行字符串的截取,只拿到图片的名称,

如果不熟悉Debug操作, 可以将每一步的截取对象打印处理, 看是否符合要求 

2> 再将名称与图片存储的服务器地址进行拼接

3> 然后创建File对象进行删除服务器中相应的图片

4> 最后响应数据给前端

    /**
     * 除文本中已经服务器存储的图片的记录
     * @param imgUrl
     * @return
     * @throws UnsupportedEncodingException
     */
    @GetMapping("deleteImgpath")
    public CommonResult deleteImgpath(@RequestParam(value = "imgUrl", required = false) String imgUrl) throws UnsupportedEncodingException {
        CommonResult commonResult = null;
        System.out.println("1.前端传送的imgUrl: " + imgUrl);

        // 解码URL
        String decodedUrl = URLDecoder.decode(imgUrl, "UTF-8");
        System.out.println("2.解码后的imgUrl: " + decodedUrl);

        // 提取文件名部分
        String fileName = decodedUrl.substring(decodedUrl.lastIndexOf("/") + 1);// 截取的索引位置 = 最后一个/的索引 + 1

        System.out.println("3.截取后的文件名: " + fileName);

        //fileName.replace("\"", "")是一个字符串操作方法,用于将字符串中的指定字符(在这里是双引号)替换为空字符串。
        fileName = fileName.replace("\"", "");

        // 构建完整的图片路径
        String imgPathString = newsimgpath + File.separator + fileName;
        System.out.println("4.完整的文件地址: " + imgPathString);
        // 创建文件对象
        File file = new File(imgPathString);
        System.out.println("5.待删除的文件对象: " + file);

        if (file.isFile() && file.exists()) { // 路径为文件且不为空则进行删除
            if (file.delete()) {
                commonResult = new CommonResult(200, "文本图片删除成功");
                System.out.println("文本图片删除成功");
            }
        }
        return commonResult;
    }

2.3测试

删除刚刚上传的图片

删除成功

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mavonEditor中的图片上传与删除(前后端交互) 的相关文章

  • for和do-while循环以及break和continue语句

    目录 for循环 语法形式 循环的执行流程图 for循环和while循环的区别 例子 do while循环 语法形式 循环的执行流程图 例子 break和continue语句 break和continue在不同循环中的区别 while fo
  • 光束法空三的计算问题,误差方程的多余观测数,未知数个数、多余观测值的计算

    1 未知数个数 必要观测值个数 未知数个数 t u 3 未知点数目 6 相片数目 3 代表一个未知点的 x y z 6代表一张像片的6个外方位元素 都是待定值 都是未知数 2 观测值个数 1 未知数个数求法 1 观测值个数 n 2 m 的含
  • 多模态交互的概念与现状

    一 多模态概念 所谓 模态 英文是modality 用通俗的话说 就是 感官 多模态即将多种感官融合 目前的人机智能交互比如语言控制不如屏幕控制那么精准 很多时候会误判指令和错误唤醒 比较语言充满了不确定性 再比如 语音交互的物联网设备还是
  • Bottle UiKit Python实现的前后端交互代码实现

    文章目录 项目所在 GitHub 地址 1 项目整体思路 2 项目实现技术 3 前端界面实现 4 后端服务器框架 bottle 简单介绍 5 python 代码实现 5 1 main py 5 2 Callibration py 6 前后端
  • Qt - 高级网络操作 HTTP/FTP

    欢迎转载 请注明出处 https blog csdn net qq 39453936 spm 1010 2135 3001 5343 原文链接 https blog csdn net qq 39453936 article details
  • Python连接influxdb2.x

    Python连接influxdb2 x 一 调研 1 1 influxdb pypi 1 2 influxdb client pypi 二 连接 2 1 对象源码 2 2 连接实例 三 问题汇总 3 1 token非永久化问题结果 一 调研
  • 【03】Unity AR 2022Vuforia图片识别超详细案例(小岛动画交互)【含代码】

    Unity AR Vuforia 拓展 Vuforia图片识别超详细案例 小岛动画交互 含代码 文章目录 Unity AR Vuforia 拓展 Vuforia图片识别超详细案例 小岛动画交互 含代码 1 环境搭建 2 资源导入 3 交互之
  • JavaScript编程语言-交互:alert、prompt 和 confirm类型转换,字符串转换,数字型转换,布尔型转换,

    交互 alert prompt 和 confirm 由于我们将使用浏览器作为我们的演示环境 让我们看几个与用户交互的函数 alert prompt 和confirm alert 这个我们前面已经看到过了 它会显示一条信息 并等待用户按下 O
  • 萝莉遥控乐高电机

    文章背景 前段时间买了一辆积木拼搭的玩具车 春节几天把他组装好了 拥有遥控控制转向以及前进后退的功能 但自带的电池以及遥控感觉不太好用 特别是电池 充电两小时 跑起来五分钟 太不耐用了 自带遥控器 接收端 积木的接口都是统一的 这样的好处是
  • 2022人机交互-考题复习

    最下面有2022的人机交互考题 简答题 什么是人机交互 Human Computer Interaction HCI 是一门专注于设计 评估和实施供人类使用的交互式计算系统的学科 人类处理机模型 最著名的信息处理模型 Card等 1983
  • 软件工程应用与实践(6)可视化-交互功能

    2021SC SDUSC open3d open3d中可视化窗口的交互功能的实现 import numpy as np import copy import open3d as o3d def demo crop geometry prin
  • C语言图形库EasyX安装及基本使用

    本文章介绍C 用EasyX进行C 基础图形编程介绍 EasyX安装 1 点击上方超链接 进入官网 点击右侧下载EasyX 2 点击下载后的可执行文件 3 EasyX安装非常简单 进入可执行文件 直接next 然后会自动检测你的开发工具 针对
  • Qt-Web混合开发-QtWebChannel实现Qt与Web通信交互(4)

    Qt Web混合开发 QtWebChannel实现Qt与Web通信交互 文章目录 Qt Web混合开发 QtWebChannel实现Qt与Web通信交互 1 概述 2 实现效果 3 实现功能 4 关键代码 5 源代码 更多精彩内容 个人内容
  • UE4材质11_材质参数集

    11 1 参数集全局控制材质 创建材质参数集 MPC 材质参数集的前缀 材质参数集可以添加标量和向量 标量一般就是数字 向量就是颜色或者是X Y Z 一个材质最多只能使用两个材质参数集 11 2 蓝图传递参数集及实例参数 打开关卡蓝图 添加
  • 【从推理出发】

    赌上爷爷之名 2021年暑假 和现在一样 也是很佛 不想好好学习的时间 8月的天气太过炎热 有时却又暴雨倾盆 很不讨喜 只得在家闲着看电视 动漫打发时间 按照以前的习惯 一般是悠闲地躺在沙发上吹着空调 看着长达900多集的柯南 然后在剧情中
  • 用VRTK4.0如何实现与UI交互(保姆级别教程)

    1 导入Tilia UnityUI master包 点击下面的链接直接跳到这个界面studentutu Tilia UnityUI Tilia package for VRTK 4 featuring support for Unity U
  • uniapp 在app和小程序端使用webview进行数据交互

    结论 app端支持比较好可以做到实时传递 微信小程序支持比较差 小程序向url传参只能通过url url向app传参需要特定时机 后退 组件销毁 分享 复制链接 触发才能收到消息 以下是代码 app端 需要使用nvue
  • 抖音小程序开发教学系列(5)- 抖音小程序数据交互

    第五章 抖音小程序数据交互 5 1 抖音小程序的网络请求 5 1 1 抖音小程序的网络请求方式和API介绍 5 1 2 抖音小程序的数据请求示例和错误处理方法 5 2 抖音小程序的数据缓存和本地存储 5 2 1 抖音小程序的数据缓存机制和使
  • Axure RP PC电商平台Web端交互原型模板

    Axure RP PC电商平台Web端交互原型模板 原型图内容齐全 包含了用户中心 会员中心 优惠券 积分 互动社区 运营推广 内容推荐 商品展示 订单流程 订单管理 售后及服务等完整的电商体系功能架构和业务流程 在设计尺寸方面 本套模板按
  • 1-9 人机交互的角度

    操作系统的人机交互部分 OS改善人机界面 为用户使用计算机提供良好的环境 人机交互设备包括传统的终端设备和新型的模式识别设备 OS的人机交互部分用于控制有关设备运行和理解执行设备传来的命令 人机交互功能是决定计算机系统友善性的重要因素 是当

随机推荐

  • STM32 bool

    STM32中基于库V3 5的头文件中 去掉了对bool类型变量的定义 而将它放在了文件stdbool h中 d Keil v5 ARM ARMCC include stdbool h stdbool文件内容如下 stdbool h ISO
  • C++将字符串中包含指定字符串范围内的字符串全部替换

    概述 将指定字符串所在的范围之内的字符串全部替换为指定的字符串 如 源字符串 START dfh待到花开月圆时 两首相顾心相连 END dhussd2434xhuhu是别人十大海归 转换后的字符串 dfh待到花开月圆时 两首相顾心相连 dh
  • XXE漏洞

    何为XXE 简单来说 XXE就是XML外部实体注入 当允许引用外部实体时 通过构造恶意内容 就可能导致任意文件读取 系统命令执行 内网端口探测 攻击内网网站等危害 典型攻击手法 XML又是什么呢 XML用于标记电子文件使其具有结构性的标记语
  • 自动填充固定行数的 GridView

    效果图 代码 C lt script runat server gt 计算数据 这里可以适当修改从数据库中获取
  • Android学习一课一得

    Android学习一课一得 文章目录 引言 1 学习入门 1 1Android开发入门 1 2用户界面设计与布局 1 3数据存储与持久化 1 4网络通信与数据获取 1 5结语 2 学习成果 2 1学习经验与方法 2 2在Android应用中
  • Gym 102152(CDZSC——2020寒假大一愉悦个人赛)

    Gym 102152 A B C D E F G H I J K L http codeforces com gym 102152 A B Memory Management System It is your first day in y
  • c++实现文件版本类b+树

    一 插入 无根节点 当没有根结点时 操作相当简单 只是从存储空间中申请一个新结点 然后设置该结点的prev next is inner 然后将要插入的数据插入该结点 void insert const t var key t val v 没
  • "1,2;3,4,5;6,7,8,9" 转换成[1,2][3,4,5][6,7,8,9]

    1 2 3 4 5 6 7 8 9 转换成 1 2 3 4 5 6 7 8 9 public class Test public static void main String args String s 1 2 3 4 5 6 7 8 9
  • hduoj 2002

    计算球体积 Problem Description 根据输入的半径值 计算球的体积 Input 输入数据有多组 每组占一行 每行包括一个实数 表示球的半径 Output 输出对应的球的体积 对于每组输入数据 输出一行 计算结果保留三位小数
  • Unity报错之【NullReferenceException: Object reference not set to an instance of an object】

    空指针错误 Object并没有作为一个对象的实例 一般都是引用类型的变量没有实例化便使用变量进行一些实例对象才能进行的操作 例如list没有new实例 便对其进行添加元素 private List
  • Python中对文件的常规操作

    文章目录 一 读取文本文件数据 1 1 读文件 r 标识符 1 2 写文件 w操作 1 3 写文件 write only a操作 1 4 r 操作 1 5 w 操作 1 6 a 操作 二 读取非纯文本数据 三 指针的变化 四 上下文管理器
  • web漏洞类型概述(owasp top10笔记)

    一 owasp top10是什么 OWASP 开放式Web应用程序安全项目 OWASP Open Web Application Security Project 是一个非营利组织 不附属于任何企业或财团 它提供有关计算机和互联网应用程序的
  • 基于opencv -python--银行卡识别

    import cv2 def sort contours cnts method left to right reverse False i 0 if method right to left or method bottom to top
  • R 修改安装包默认存放位置的方法

    目录 R语言修改安装包的默认储存位置 查看默认的安装包位置 第一种方法会修改当前用户的R包位置 第二种方法 永久改变 永久有效 第三种方法 修改环境变量 总结 R语言修改安装包的默认储存位置 查看默认的安装包位置 一般会有两个目录 如下 第
  • 计算机操作系统-进程篇

    一 进程 进程 progress 是指计算机中已运行的程序 每个进程都有自己的地址空间 内存 寄存器和堆栈等资源 它们与其他进程相互隔离 互不干扰 进程是操作系统中最基本的资源分配单位 也是操作系统中最重要的概念之一 在操作系统中 进程是由
  • 动态规划:样例讲解一篇通

    概念讲解 动态规划是把大问题分解成子问题 但不能简单的分解 子问题要具有相同子结构的解 并综合子问题的解 导出大问题的解 问题求解耗时会按问题规模呈幂级数增加 基本方法 为了节约重复求相同子问题的时间 引入一个数组 不管它们是否对最终解有用
  • 运行jar包提示 “XXX中没有主清单属性” “找不到主类”两种解决办法

    运行jar包提示 XXX中没有主清单属性 找不到主类 两种解决办法 这种情况一般都是使用maven打成jar包后运行出现的 这种情况是因为jar包里面没有主类路径 解决办法有两个 1 使用IDEA自带的构建jar包流程 不使用Maven打包
  • GPS开源项目

    GPS数据解析开源项目 测试数据 GNRMC 013300 00 A 2240 84105 N 11402 70763 E 0 007 220319 D 69 r n GNVTG T M 0 007 N 0 014 K D 3A r n G
  • C++多态虚函数表详解(多重继承、多继承情况)

    本文关键词 C 多态 多继承 多重继承 虚函数表 虚函数指针 动态绑定 概述 C 相对其他面向对象语言来说 之所以灵活 高效 很大程度的占比在于其多态技术和模板技术 C 虚函数表是支撑C 多态的重要技术 它是C 动态绑定技术的核心 本文章将
  • mavonEditor中的图片上传与删除(前后端交互)

    我设置的存储图片服务器的地址 D Program Files apache tomcat 9 0 43 webapps ROOT newsimg 1 图片上传 1 1 前端 文本上传图片事件处理函数 imgAdd pos file var