接口只接收文件流格式的载荷
vue文件
<el-upload class="avatar-uploader" :http-request="httpRequest" :show-file-list="false" >
<el-avatar v-if="imgsrc" :src="imgsrc"/>
<el-icon v-else class="avatar-uploader-icon"><Plus /></el-icon>
</el-upload>
<script setup>
import http from '@/utils/https.js' // 封装axios请求的js文件
import { ElMessage } from 'element-plus';
function httpRequest (params) {
// 重点开始
let formData = new FormData();
formData.append("file", params.file);
// 重点结束
// fileUpload 用于上传文件的请求方法
http.fileUpload(fileUploadUrl, formData).then(({data}) => {
if (data.success) {
ElMessage.success('上传成功!')
} else {
ElMessage.error('上传失败!')
}
})
}
</script>
http.js文件
'use strict'
import axios from 'axios'
export default {
fileUpload (url,data) { // 文件上传
return axios({
method: 'post',
baseURL: import.meta.env.VITE_BASEURL,//baseURL里面填服务器地址
url,
data,
timeout: 10000,
headers: {
'X-Requested-With': 'XMLHttpRequest',
'Content-Type': 'multipart/form-data; boundary=something', // 重点,照抄
'X-Access-Token': window.localStorage.token // 存储的token
}
}).then().catch()
}
}
这样写,载荷就会变成二进制文件流!!!!!!