自定义Element的Upload 上传事件,不使用action属性上传

自定义Element的Upload 上传事件,不使用action属性上传

<template>
 <div class="upload-container">
         <el-upload
          class="upload-demo"
          action=""
          :on-preview="handlePreview"
          :on-remove="handleRemove"
          :file-list="fileList"
          :before-upload="BeforeUpload"
          :http-request="Upload"
          list-type="picture">
          <el-button size="small" type="primary">点击上传</el-button>
          <div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div>
        </el-upload>
 </div>
</template>
<script>
import axios from 'axios';
import qs from 'qs';
  export default {
    data(){
      return {
          fileList: [{name: 'food1.jpeg', url: 'https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100'}],
          newFile:new FormData() //   1. 定义一个newFile变量(FormData 对象) 
      }
    },
    methods: {
      handleRemove(file, fileList) {
        console.log(file, fileList);
      },
      handlePreview(file) {
        console.log(file);
      },
      BeforeUpload(file){
       if(file){
          this.newFile.append('file',file); //  2. 上传之前,拿到file对象,并将它添加到刚刚定义的FormData对象中。 
           console.log(this.newFile.get('file'))
       }else{
         return false;
       }     
      },
      Upload(){
        const newData= this.newFile; //  3. 拿到刚刚的数据,并将其传给后台
        axios({
          url:'https://jsonplaceholder.typicode.com/posts/',
          method:'post',
          data: newData,
          headers:{
          'Content-Type':'multipart/form-data'
          }
        })
        .then(res => {
          console.log('res:',res)
        }).catch(err => {
          console.log(err)
        })
      }
    }
  }
</script>
<style lang="scss">
  .upload-container{
    width: 250px;
    padding:150px;
  }
</style>

以下分别为:图片上传成功效果、传给后台的数据格式以及后台的响应数据截图。
在这里插入图片描述在这里插入图片描述在这里插入图片描述
更多详细用法,参考官网

  • 6
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值