当前位置:首页 » 《休闲阅读》 » 正文

Vue开发前端图片上传给java后端

13 人参与  2024年10月04日 14:00  分类 : 《休闲阅读》  评论

点击全文阅读


前端效果图

图片上传演示

1 前端代码

<template>    <div>      <!-- 页面标题 -->      <h1 class="page-title">图片上传演示</h1>      <div class="upload-container">        <!-- 使用 van-uploader 组件进行文件上传,v-model 绑定 fileList 数据,支持多选文件,afterRead 属性指定读取文件后的回调函数 -->        <van-uploader v-model="fileList" multiple :after-read="afterRead" />      </div>      <button class="submit-button" @click="submitUpload">提交上传</button>    </div>  </template><script>import axios from 'axios'export default {  data () {    return {      // 存储上传文件列表      fileList: []    }  },  methods: {    afterRead (file) {      // 此时可以自行将文件上传至服务器      // 设置文件状态为上传中,并添加提示信息      file.status = 'uploading'      file.message = '上传中...'      const fd = new FormData()      // 将文件添加到 FormData 对象中,准备上传      fd.append('file', file.file)      axios        .post('http://localhost:8081/api/upload', fd, {          headers: {            // 设置请求头为 multipart/form-data,用于文件上传            'Content-Type': 'multipart/form-data'          }        })        .then((res) => {          console.log(res.data.code)          // 判断服务器返回的状态码,如果为 200 表示上传成功          if (res.data.code === 200) {            file.status = 'done'            file.message = '上传成功'            file.content = res.data.data          } else {            file.status = 'failed'            file.message = '上传失败'          }        })        .catch((error) => {          console.error(error)        })    },    submitUpload () {      // 遍历数组返回新数组      const imgs = this.fileList.map(item => item.content)      // 可以在这里添加提交上传的逻辑,比如确认所有文件上传状态等      axios.post('http://localhost:8081/api/submit', JSON.stringify({ imgs }),        {          headers: {            'Content-Type': 'application/json'          }        }      ).then((res) => {        console.log(res.data)      }).catch((error) => {        console.error(error)      })    }  }}</script>  <style scoped lang="less">  h1 {    text-align: center;  }  .page-title {    font-size: 24px;    font-weight: bold;    color: #333;    margin-bottom: 20px;  }  .upload-container {    border: 2px dashed #999;    padding: 20px;    display: flex;    flex-direction: column;    align-items: center;  }  .submit-button {    margin-top: 20px;    padding: 10px 20px;    background-color: #007bff;    color: #fff;    border: none;    border-radius: 5px;    cursor: pointer;  }  </style>

这是基于vue脚手架开发的,用于将本地的图片上传至服务器,并在上传过程中展示预览图。

注意:van-uploader标签是vant的一个组件,不会使用可以参考下列链接:vant

2 后端代码

@RestController@CrossOrigin("*")@RequestMapping("/api")public class FileController {    @PostMapping("/upload")    public Result upload(MultipartFile  file){                        //file是前端传给后端的文件,文件可以保存到阿里云的oss、linux文件夹等都可以,这里由你们自己实现...,最终会得到一个图片url                // 假设图片保存的地址        String url="https://img2.baidu.com/it/u=446981511,947966320&fm=253&app=120&size=w931&n=0&f=JPEG&fmt=auto?sec=1727197200&t=3fc1e64aa5ec768a5bf721d5f131d60f";        return Result.success(url);    }            @PostMapping("/submit")    public Result add(@RequestBody ImagesDTO images) throws Exception{        for (String img : images.getImgs()) {            System.out.println(img);        }        return Result.success();    }}

3 实现思路

步骤一:点击下方按钮

步骤二:选择图片,选中图片后,前端就会调用methods中afterRead(file)函数,最终将图片文件传给http://localhost:8081/api/upload后端接口,后端将图片存储,并返回图片的存储地址给前端。

 步骤三:前端会判断后端的响应,对不同响应做出不同处理,如果成功的话,前端可以拿到图片的存储地址,并将本张图片的后端地址,存储到本地。

res.data.data是图片后端地址

 所有的图片信息会存储在下列数组中,包括图片后端地址。

数组格式如下:

步骤四:点击提交上传后,会遍历flieList数组,将各元素的content(图片地址)的拿出,创建新的数组,将数组传给后端接口。

后端收到前端的请求 


点击全文阅读


本文链接:http://m.zhangshiyu.com/post/167650.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 她与刺同行快手热门_沈知顾衍赵铭推文_小说后续在线阅读_无删减免费完结_
  • 寿命推演,从杂役开始苟到万古无敌精修版_顾长生澹台月好评_小说后续在线阅读_无删减免费完结_
  • 云清故事会_云舒小姐太后新上热文_小说后续在线阅读_无删减免费完结_
  • 顶流小师妹撕我剧本,他却成了我的裙下之臣好评_沈澈谢谢帅哥最新目录_小说后续在线阅读_无删减免费完结_
  • 老公要娶狐狸做平妻,我杀疯了精选作品_陈默老公小少爷精彩分享_小说后续在线阅读_无删减免费完结_
  • 婆婆在我婚礼上跳钢管舞热门榜首_林昊婆婆周慧慧无错版_小说后续在线阅读_无删减免费完结_
  • 害我入狱,我成狱神后你们连跪都不配!独家番外_陆见秋柳盈盈新上_小说后续在线阅读_无删减免费完结_
  • 斗罗v:从逮到千仞雪偷窃开始成神完结版_陈晨胡列娜大反击_小说后续在线阅读_无删减免费完结_
  • 末世开火车,顺便捡了个机械神格高分神作_李昂诺亚独家首发_小说后续在线阅读_无删减免费完结_
  • 云清免费看_云舒小姐太后校园甜文_小说后续在线阅读_无删减免费完结_
  • 军训前,童养媳拿我的病历本给心上人叠纸飞机后,我退婚了完结爽文_杨鹤童养媳阿鹤一口气完结_小说后续在线阅读_无删减免费完结_
  • 未婚夫女兄弟把婚车改成宠物灵车,我反手让她的宾利变破烂最新阅读_魏成鸣乔诗诗林书妍小编推荐_小说后续在线阅读_无删减免费完结_

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1