美文网首页
vue(element-ui)手动上传

vue(element-ui)手动上传

作者: 不语u | 来源:发表于2020-09-11 13:53 被阅读0次

前言:因为element-ui通过action上传不够灵活,后改用其中属性http-request实现自定义上传(http-request: 覆盖默认的上传行为,可以自定义上传的实现)

1.template中加入如下配置:

<el-upload action=""
                     list-type="picture-card"
                     multiple
                     ref="upload_img"
                     accept=".jpg, .jpeg, .png"
                     :on-preview="handlePictureCardPreview"
                     :http-request="handleTestSuccess">
                 <i class="el-icon-plus"></i>
</el-upload>

2.methods加入如下方法

handleTestSuccess(file) {
      // 验证图片格式
      if (file.file.type.indexOf('image') == -1) {
        // 文件格式
        this.$message.error('请上传图片类型的文件')
       //删除上传失败的图片,不然会占位
        this.$refs.upload_img.uploadFiles = this.$refs.upload_img.uploadFiles.filter(
          (item) => {
            return file.file.name != item.name
          }
        )
        return
      }
      //构建一个formData对象,因为这里要求表单类型的数据
      const formData = new FormData()
      formData.append('file', file.file)
      axios
        .post('上传的url地址', formData, {
          headers: {
            //携带的参数
          },
        })
        .then((res) => {
          if (res.status === 200) {
            //数据处理
            this.$message.success('上传检测表附件成功!')
          }
        })
        .catch((err) => {
          //删除上传失败的图片,不然会占位
          this.$refs.upload_img.uploadFiles = this.$refs.upload_img.uploadFiles.filter(
            (item) => {
              return file.file.name != item.name
            }
          )
          this.$message.error('上传失败!')
        })
    },

相关文章

网友评论

      本文标题:vue(element-ui)手动上传

      本文链接:https://www.haomeiwen.com/subject/phreektx.html