iview中uplaod组件的一些坑(下篇)

309 阅读2分钟

之前写过一篇文章关于iview中upload组件的一些坑,上次我们介绍了一种方法来解决upload的手动上传,但是之前那种方法是有缺陷的,那就是只能通过post方法来上传,所以如果后端接口不是post的话,那么就没法实现文件的上传,所以我们今天提供一种方法来解决其他的方式upload

项目架构

首先我的项目架构是vue-resource + iview + vue,所以在请求接口是通过vue-resource实现

解决方法

回归我们今天的主题,我们今天主要是想不通过post方法实现手动上传,那么我们要如何实现呢? 因为前面我们也提到了,我们使用的vue-resource来请求接口,然后我们在看vue-resource的结构的时候,在node_modules/vue-resource/src/resource.js中有一个action,这个action里面使用一些键对应了一些http方法

通过图片我们可以看见这些映射,但是我们具体要怎么使用呢? 带着这些东西,我们去看了vue-resourc源码,源码里面是这样写的,接下来我们介绍一下这些步骤

  1. 首先我们要创建一个resource
var resource = this.$resource(要请求的路径);
  1. 在调用方法之前我们需要将这个文件使用FormData()转换一下
beforeUplaod() {
    var formData = new FormData();
    formData.append('uploadfile, 要上传的文件);
    this.file = formData;
    return false;
}
3. 我们可以通过actions的映射关系,然后调用相应的方法(我这里以put方法为例)

resource.update(this.file)


  1. 然后这个函数调用之后返回的是Promise,所以我们可以在then内部进行相应的处理。

结语

好了,我们今天的介绍就到这了,小伙伴们有什么不明白的,可以相互探讨啊