当前位置: 首页 > news >正文

上传图片并显示#Vue3#后端接口数据

上传图片并显示#Vue3#后端接口数据

效果:
在这里插入图片描述

上传并显示图片

代码:

<!-- 上传图片并显示 -->
<template>
  <!-- 上传图片start -->
  <div>
    <el-form>
      <el-form-item>
        <el-upload
          multiple
          class="avatar-uploader"
          action=""
          :http-request="uploadFile1"
          list-type="picture"
          :show-file-list="false"
        >
          <img v-if="imageUrl" class="avatar" :src="imageUrl" />
          <el-icon v-else class="avatar-uploader-icon"><Plus /></el-icon>
        </el-upload>
      </el-form-item>
    </el-form>
  </div>
  <!-- 上传图片end -->
</template>

<script setup lang="ts">
import { Plus } from "@element-plus/icons-vue";
import { ref } from "vue";
import axios from "axios";
import { useRouter } from "vue-router";
import { ElNotification } from "element-plus";

const router = useRouter();
console.log(router.currentRoute.value.path); //当前路由路径
sessionStorage.setItem("path", router.currentRoute.value.path);

// 定义表单
let tableForm = ref({
  file: "",
});
const imageUrl = ref("");
// 上传并显示图片
const uploadFile1 = async (val: any) => {
  tableForm.value.file = val.file;
  console.log("tableForm", tableForm);
  // 数据交互
  let formdata = new FormData();
  formdata.append("File", tableForm.value.file);
  // 上传文件
  await axios
    .post("http://192.168.1.214:5050/api/File/UploadFile", formdata, {
      headers: { "Content-Type": "multipart/form-data" },
    })
    .then((res) => {
      console.log("res.data", res.data);
      console.log("res.data.data.id", res.data.data.id);
      // 找到文件路径
      axios
        .post("http://192.168.1.214:5050/api/File/FilePathInfo", {
          id: res.data.data.id,
        })
        .then((result) => {
          console.log("result.data.data.filePath", result.data.data.filePath);
          let path = "http://192.168.1.214:5050" + result.data.data.filePath;
          console.log("path", path);
          imageUrl.value = path;
        });
      if (res.data.status === 200) {
        ElNotification({
          title: "上传成功",
          message: "上传成功",
          duration: 2000,
          type: "success",
        });
      }
    });
};
</script>

<style scoped lang="scss">
// 上传图片
.avatar-uploader .avatar {
  width: 200px;
  height: 200px;
  display: block;
}
.avatar-uploader {
  width: 200px;
  height: 200px;
  border: 1px dashed var(--el-border-color);
  border-radius: 6px;
  cursor: pointer;
  position: relative;
  overflow: hidden;
  transition: var(--el-transition-duration-fast);
}
.avatar-uploader:hover {
  border-color: var(--el-color-primary);
}
.el-icon {
  font-size: 20px;
  color: #8c939d;
  width: 200px;
  height: 200px;
  text-align: center;
}
</style>

http://www.dtcms.com/a/10679.html

相关文章:

  • Datetime,一个 Python 的时间掌控者
  • 乙二醇水溶液物性参数
  • 将SU模型导入ARCGIS,并获取高度信息,多面体转SHP文件(ARCMAP)
  • Spring boot 集成mybatis-plus
  • 【MMU】——MMU 相关的 CP15 寄存器
  • uniapp通过Canvas绘制网格(心电图,坐标纸等可用)
  • 联合(union)和枚举(enum)学习(c语言)
  • 常用STL标准模板库
  • 区间预测 | Matlab实现QRCNN-GRU-Attention分位数回归卷积门控循环单元注意力机制时序区间预测
  • for深入学习
  • MySQL报ERROR 2002 (HY000)解决
  • NocoDB开源的智能表格详解-腾讯文档本地替代品
  • zs6d配置-2
  • python基础——-多任务-正则-装饰器
  • 深入理解mysql中的各种超时属性
  • 全面解析开源RTSP流媒体服务器:功能、性能与应用场景对比
  • 小白跟做江科大32单片机之按键控制LED
  • apple开发者账户证书删除与下载
  • 面试(五)
  • 初步了解服装买手、时尚网站
  • Spring Boot配置MySQL数据库连接数
  • python方法
  • 老程序员学习AI大模型的焦虑与机遇
  • 企微自动化机器人的应用与前景
  • Turntin查重报告解读,如何根据颜色标准修改essay作业
  • 在nginx中配置反向代理
  • Mysql疑难报错排查 - Field ‘XXX‘ doesn‘t have a default value
  • 勒索软件分析_目标文件扫描行为分析
  • Dockershim 与 Containerd:两种容器运行时的故事
  • 【CMake系列】10-cmake测试 ctest