vue使用axios+element上传文件

引言

springboot后端接口类型:post,其它接口信息如下图

image-20221117200723804

后端接口的实现

image-20221117201522033

代码示例

  • post 请求头改成’Content-Type’: ‘multipart/form-data’
  • 用new FormData() 方式去传对象数据
  1. axios封装请求

    import request from '@/utils/request'
    export function uploadImage(data){
      return request({
        url: '/uploadImage',
        method: 'post',
        headers: {'Content-Type': 'multipart/form-data'},
        data: data
      })
    }
    
  2. vue界面上传文件代码

    • http-request:覆盖默认的上传行为,可以自定义上传的实现,绑定一个function就行了

    我这里增加了回显功能,就是el-image这个标签

    <el-upload
                  action=""
                  class="upload-demo"
                  drag
                  :http-request="uploadArticleCover"
                >
                  <el-image :src="articleCoverCallbackUrl" style="height: 180px"></el-image>
    <!--              <i class="el-icon-upload"></i>-->
                  <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
                </el-upload>
    
  3. 绑定的方法

    一定要注意,传的对象是new FormData(),否则会报错的

    uploadArticleCover(param){
      console.log('进入了自定义上传')
        
      let formData = new FormData();
      formData.append('file',param.file)
      formData.append('pictureCategory','articleCover')
      uploadImage(formData).then(res =>{
        console.log("上传完成")
        console.log(res.data)
        this.articleCoverCallbackUrl = res.data
      })
    }
    
  4. 结果示例

    image-20221117201444095

    image-20221117201315750

总结

本篇文章只是当作记录,文件的上传只完成了简单的功能,如果有其它需求需要后面自己加上

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱学习的大雄

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值