ElementUI中el-upload组件通过自定义ajax方法上传

2018-09-02 / 18 阅读 / Java

ElementUI的上传文件组件还是不错的,不过给出的demo中是用的action上传。并没有给出自定义上传示例。但是组件是有这样一个接口的。

开始自定义上传

拦截 :http-request="handleUpload

<el-upload
        style="width: 300px;"
        name="file"
        class="upload-demo"
        action="upload"
        :http-request="handleUpload"
        :on-preview="handlePreview"
        :on-remove="handleRemove"
        :before-remove="beforeRemove"
        multiple
        :limit="3"
        :on-exceed="handleExceed"
        :file-list="fileList">
    <el-button size="small" type="primary">点击上传</el-button>
    <div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div>
</el-upload>
自定义方法
handleUpload: function (req) {
     $.services.fileUpload(req.file).then(function (data) {
             if (data.errors.length > 0) {
                       toast.e(data.errors[0].message);
              } else {
                     oast.i("文件上传成功!");
              }
     })
},

以上方法上传接口调用都没有问题,关键是组件的状态无法正确表现.官网貌似没有给出具体的说明,但是可以通过回调来通知组件的成功或失败状态。

如一下方式:

handleUpload: function (req) {
     $.services.fileUpload(req.file).then(function (data) {
             if (data.errors.length > 0) {
                       req.onError();//通知组件上传失败
                       toast.e(data.errors[0].message);
              } else {
                     req.onSuccess();//通知组件上传成功
                     oast.i("文件上传成功!");
              }
     })
},
相关推荐