代码结构
- 基于axios接口层:api/base.js
- Vue组件Upload.vue
代码示例
接口层
import request from '@/utils/request'export function uploadPic (params) {return request({url: 'http://example.com/upload/image', // 替换成您需要上传的接口method: 'post',data: params})}
上传组件
<template><van-uploader :after-read="onRead"><van-icon name="photograph" /></van-uploader></template><script>import { uploadPic } from '@/api/base'export default {data () {return {}},methods: {onRead (file) {var data = new FormData()data.append('file', file.file)uploadPic(data).then((data) => {console.log(data)})}}}</script><style scoped></style>
代码说明
- 接口层/utils/request.js 使用的是PanJiaChen/vueAdmin-template 项目中request.js
- 接口层中url替换成您需要上传接口即可
- 组件层中after-read方法既onRead方法中传入的file包含两个属性:content和file。content就是file的base64,可以做图片预览用,使用file.content调用
- 接上一条那上传file就应该是file.file
- 此处上传文件如果是表单模式上传应该使用
new FormData构建一个表单对象,这个是关键,否则会返回400 Bad reques错误。FormData类参考