修改代码要求只能选择png、jpg格式的图片,请求地址http://192.168.5.125:40061/api/index.php token为777c8a2d7e0ac01a90300423c6b7c770
时间: 2024-10-25 10:08:24 浏览: 13
为了满足您的需求,需要对现有的代码进行以下修改:
1. **修改允许的文件格式**:将 `beforeAvatarUpload` 方法中的文件类型检查从仅支持 `JPG` 修改为支持 `PNG` 和 `JPG`。
2. **更新请求地址和添加 Token**:在 `uploadFile` 方法中更新请求地址,并在请求头中添加 `Authorization` 字段来传递 Token。
以下是修改后的代码:
```html
<template>
<div class="avatar-uploader">
<input type="file" @change="handleFileChange" ref="fileInput" style="display: none;">
<div @click="triggerFileInput" class="upload-area">
<img v-if="imageUrl" :src="imageUrl" class="avatar">
<i v-else class="upload-icon">+</i>
</div>
</div>
</template>
<style>
.avatar-uploader {
border: 1px dashed #d9d9d9;
border-radius: 6px;
cursor: pointer;
position: relative;
overflow: hidden;
width: 178px;
height: 178px;
display: flex;
align-items: center;
justify-content: center;
}
.avatar-uploader:hover {
border-color: #409EFF;
}
.upload-icon {
font-size: 28px;
color: #8c939d;
text-align: center;
}
.avatar {
width: 178px;
height: 178px;
display: block;
}
</style>
<script>
export default {
data() {
return {
imageUrl: ''
};
},
methods: {
triggerFileInput() {
this.$refs.fileInput.click();
},
handleFileChange(event) {
const file = event.target.files[0];
if (file) {
if (this.beforeAvatarUpload(file)) {
this.imageUrl = URL.createObjectURL(file);
this.uploadFile(file);
}
}
},
beforeAvatarUpload(file) {
const isJPGorPNG = file.type === 'image/jpeg' || file.type === 'image/png';
const isLt2M = file.size / 1024 / 1024 < 2;
if (!isJPGorPNG) {
alert('上传头像图片只能是 JPG 或 PNG 格式!');
}
if (!isLt2M) {
alert('上传头像图片大小不能超过 2MB!');
}
return isJPGorPNG && isLt2M;
},
uploadFile(file) {
const formData = new FormData();
formData.append('img', file);
fetch('http://192.168.5.125:40061/api/index.php', {
method: 'POST',
headers: {
'Authorization': 'Bearer 777c8a2d7e0ac01a90300423c6b7c770'
},
body: formData
})
.then(response => {
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
return response.text(); // 先以文本方式读取响应
})
.then(text => {
try {
const json = JSON.parse(text); // 尝试解析为 JSON
console.log('File uploaded successfully:', json);
} catch (error) {
console.error('Error parsing JSON:', error);
console.log('Response text:', text); // 打印响应文本
}
})
.catch(error => {
console.error('Error uploading file:', error);
});
}
}
};
</script>
```
### 主要修改点:
1. **文件格式检查**:
- 在 `beforeAvatarUpload` 方法中,增加了对 `PNG` 格式的检查。
- 更新了提示信息,使其明确指出只支持 `JPG` 和 `PNG` 格式。
2. **请求地址和 Token**:
- 更新了 `fetch` 请求的 URL 为 `http://192.168.5.125:40061/api/index.php`。
- 在请求头中添加了 `Authorization` 字段,并设置值为 `Bearer 777c8a2d7e0ac01a90300423c6b7c770`。
这样修改后,代码将符合您的新需求。
阅读全文