import axios from 'axios' export default { mounted() {}, data() { return { uploadInfo: {}, options: { server: '/file/proxyUpload', auto: true, compress: null, }, upload_id: '', file: null, post_url: '' } }, methods: { apiPrepareUpload(file, cb) { let uploadInfo = null; let formData = new FormData() formData.append("filename", file.name); formData.append("target", '{"type":3}'); this.$axios.post('/file/prepareUpload', formData, { headers: { "Content-Type": "multipart/form-data" } }).then((data) => { this.uploadInfo = data.data.data.post_params; this.post_url = data.data.data.post_url; this.upload_id = data.data.data.upload_id; this.apiSend(file, cb) }) return uploadInfo; }, apiSend(file, cb) { let formData = new FormData() formData.append("file", file); formData.append("name", file.name); formData.append("target", '{"type":3}'); for (let key in this.uploadInfo) { formData.append(key, this.uploadInfo[key]) } axios.post('/file/proxyUpload', formData, { headers: { "Content-Type": "multipart/form-data" } }).then(res => { this.returnData = res.data this.uploadCb(cb) }) }, uploadCb(cb) { let p = { upload_id: this.upload_id, return_data: JSON.stringify(this.returnData) } this.$axios.post('/file/uploadCallback', p).then(res => { cb && cb(res) }) } } }