怎么修改文件中的代码来解决控制台的报错File Response: undefined,File Status: done{result: 'failed', code: 204, message: '没有选择上传的文件'}
时间: 2024-11-15 11:23:18 浏览: 11
06:File.pdf
要解决您提到的控制台错误 `File Response: undefined` 和 `{result: 'failed', code: 204, message: '没有选择上传的文件'}`,您可以按照以下步骤修改代码:
1. **检查文件上传接口**:首先确认您的后端 API 能够正确处理文件上传,并且返回正确的响应格式。
2. **修改前端处理逻辑**:在前端处理文件上传时,需要增加一些条件判断,以确保在文件上传成功时能够正确处理响应数据。
以下是修改后的代码:
```html
<template>
<div>
<a-upload
:action="apiUrl"
list-type="picture-card"
multiple
:file-list="fileList"
:headers="headers"
@change="handleUploadChange"
>
<a-button>
<a-icon type="upload" />
点击上传
</a-button>
</a-upload>
<a-table
:columns="columns"
:dataSource="tableData"
rowKey="id"
style="margin-top: 20px;"
>
<template slot="url" slot-scope="text">
<a :href="text" target="_blank">{{ text }}</a>
</template>
</a-table>
</div>
</template>
<script>
import { Upload, Button, Icon, Table } from 'ant-design-vue';
export default {
components: {
'a-upload': Upload,
'a-button': Button,
'a-icon': Icon,
'a-table': Table,
},
data() {
return {
fileList: [],
tableData: [],
apiUrl: process.env.VUE_APP_API_URL + '/api/index.php',
headers: {
Authorization: 'Bearer 0ace6f265f2dd2cb1f97ac412c4ddc3e'
},
columns: [
{
title: '图片地址',
dataIndex: 'url',
key: 'url',
scopedSlots: { customRender: 'url' },
},
],
};
},
methods: {
handleUploadChange({ file, fileList }) {
this.fileList = fileList;
// 输出文件状态和文件对象的详细信息
console.log("File Status:", file.status);
console.log("File Object:", file);
if (file.status === 'done') {
if (file.response) {
if (file.response.code === 200 && file.response.url) {
const { url, id } = file.response;
this.tableData.push({ id, url });
console.log("Upload successful. Added entry:", { id, url });
} else if (file.response.code === 204 || !file.response.url) {
console.error("Upload completed, but no file URL provided or result is failed:", file.response);
} else {
console.error("Upload completed, but response code is not 200:", file.response);
}
} else {
console.error("Upload completed, but file.response is undefined.");
}
} else if (file.status === 'error') {
console.error("Upload failed:", file);
}
},
},
};
</script>
<style scoped>
/* 可根据需求自定义样式 */
</style>
```
### 关键修改点:
1. **增加了对 `204` 响应码的处理**:如果服务器返回 `204`,并且没有提供文件 URL,则输出相应的错误信息。
2. **增加了对 `response.url` 的检查**:即使响应码为 `200`,也需检查是否有 `url` 字段存在。
通过这些修改,您可以更准确地处理不同情况下的上传结果,避免因响应格式不匹配导致的错误。
阅读全文