之前写过一篇文章关于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方法

- 首先我们要创建一个resource
var resource = this.$resource(要请求的路径);
- 在调用方法之前我们需要将这个文件使用FormData()转换一下
beforeUplaod() {
var formData = new FormData();
formData.append('uploadfile, 要上传的文件);
this.file = formData;
return false;
}
3. 我们可以通过actions的映射关系,然后调用相应的方法(我这里以put方法为例)
resource.update(this.file)
- 然后这个函数调用之后返回的是Promise,所以我们可以在then内部进行相应的处理。
结语
好了,我们今天的介绍就到这了,小伙伴们有什么不明白的,可以相互探讨啊