refactor(Upload): 移除调试日志并优化文件上传逻辑
- 移除SimpleFileUpload组件中的console调试日志 - 重构uploadFile方法,使用axios替代原有request方法 - 添加请求头认证和超时设置 - 改进错误处理,返回更具体的错误信息
This commit is contained in:
@@ -1,4 +1,6 @@
|
|||||||
import request from "./request";
|
import axios from "axios";
|
||||||
|
import { useUserStore } from "@/store/module/user";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 通用文件上传方法(支持图片、文件)
|
* 通用文件上传方法(支持图片、文件)
|
||||||
* @param {File} file - 要上传的文件对象
|
* @param {File} file - 要上传的文件对象
|
||||||
@@ -10,22 +12,26 @@ export async function uploadFile(
|
|||||||
uploadUrl: string = "/v1/attachment/upload",
|
uploadUrl: string = "/v1/attachment/upload",
|
||||||
): Promise<string> {
|
): Promise<string> {
|
||||||
try {
|
try {
|
||||||
console.log("uploadFile 接收到的文件:", file);
|
|
||||||
console.log("上传URL:", uploadUrl);
|
|
||||||
|
|
||||||
// 创建 FormData 对象用于文件上传
|
// 创建 FormData 对象用于文件上传
|
||||||
const formData = new FormData();
|
const formData = new FormData();
|
||||||
formData.append("file", file);
|
formData.append("file", file);
|
||||||
|
|
||||||
console.log("FormData 创建完成");
|
// 获取用户token
|
||||||
console.log("FormData 内容:", formData.get("file"));
|
const { token } = useUserStore.getState();
|
||||||
|
|
||||||
// 使用 request 方法上传文件,让浏览器自动设置 Content-Type
|
const fullUrl = `${(import.meta as any).env?.VITE_API_BASE_URL || "/api"}${uploadUrl}`;
|
||||||
const res = await request(uploadUrl, formData, "POST");
|
|
||||||
console.log("上传响应:", res);
|
// 直接使用 axios 上传文件
|
||||||
return res.url;
|
const response = await axios.post(fullUrl, formData, {
|
||||||
|
headers: {
|
||||||
|
Authorization: token ? `Bearer ${token}` : undefined,
|
||||||
|
},
|
||||||
|
timeout: 20000,
|
||||||
|
});
|
||||||
|
return response?.data?.data?.url || "";
|
||||||
} catch (e: any) {
|
} catch (e: any) {
|
||||||
console.error("uploadFile 错误:", e);
|
const errorMessage =
|
||||||
throw new Error(e?.message || "文件上传失败");
|
e.response?.data?.message || e.message || "文件上传失败";
|
||||||
|
throw new Error(errorMessage);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,10 +38,6 @@ const SimpleFileUpload: React.FC<SimpleFileUploadProps> = ({
|
|||||||
if (!files || files.length === 0) return;
|
if (!files || files.length === 0) return;
|
||||||
|
|
||||||
const file = files[0];
|
const file = files[0];
|
||||||
console.log("选择的文件:", file);
|
|
||||||
console.log("文件名:", file.name);
|
|
||||||
console.log("文件大小:", file.size);
|
|
||||||
console.log("文件类型:", file.type);
|
|
||||||
|
|
||||||
if (!validateFile(file)) {
|
if (!validateFile(file)) {
|
||||||
if (fileInputRef.current) {
|
if (fileInputRef.current) {
|
||||||
@@ -53,7 +49,6 @@ const SimpleFileUpload: React.FC<SimpleFileUploadProps> = ({
|
|||||||
setUploading(true);
|
setUploading(true);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
console.log("开始上传文件...");
|
|
||||||
const fileUrl = await uploadFile(file);
|
const fileUrl = await uploadFile(file);
|
||||||
console.log("上传成功,文件URL:", fileUrl);
|
console.log("上传成功,文件URL:", fileUrl);
|
||||||
onFileUploaded?.(fileUrl);
|
onFileUploaded?.(fileUrl);
|
||||||
|
|||||||
Reference in New Issue
Block a user