vue1.0用 vue-resource 目前不维护了
vue2.0用 axios
使用
1.安装axios,
npm install axios
2.在main.js中配置
import axios from 'axios'
Vue.prototype.$http = axios;
3.配置main,js中token,每次请求都会自带token
var token = '你自己定义的token' axios.interceptors.request.use(
config => {
config.headers['后端接收token的字段'] = token
return config
},
err => {
return Promise.reject(err)
})
4.上传图片
4.1 html部分代码
<input class="file" name="file" type="file" accept="image/png,image/gif,image/jpeg" @change="update"/>
4.2 script部分
update(e){
let file = e.target.files[0];
let param = new FormData(); //创建form对象
param.append('后端接收图片的字段',file,file.name)
console.log(param.get('file')); //FormData私有类对象,访问不到,可以通过get判断值是否传进去
this.uploading(param,file.name);
},
uploading(param,pathName){
this.$http.post('接口地址',param)
.then(response=>{
console.log(response.data);
let localArr = this.images.map((val,index,arr)=>{
return arr[index].localSrc;
})
if(!~localArr.indexOf(pathName)){
this.images.push({'src':this.showUrl+response.data.key,'localSrc':pathName});
}else{
alert('已上传该图片');
}
})
},
到这就可以实现图片上传了