fix: 知识库文档上传(尾斜杠+FormData+真文件接收); AI回复强制Markdown; 平台全功能知识库注入系统提示

This commit is contained in:
QihuAI Design committed 2026-07-14 23:04:30 +08:00
1 parent 62631a3b95
commit 463824480b
5 files changed
+183 -24

No files matched your search

+20 -3
View File
@@ -617,10 +617,12 @@ const UploadDocModal: React.FC<{
const [fileSize, setFileSize] = useState(102400);
const [uploading, setUploading] = useState(false);
const [progress, setProgress] = useState(0);
const [selectedFile, setSelectedFile] = useState<File | null>(null);
const handleFileSelect = (e: React.ChangeEvent<HTMLInputElement>) => {
const file = e.target.files?.[0];
if (file) {
setSelectedFile(file);
setFilename(file.name);
const ext = file.name.split('.').pop()?.toLowerCase() || 'txt';
setFileType(ext);
@@ -633,7 +635,6 @@ const UploadDocModal: React.FC<{
setUploading(true);
setProgress(0);
// 模拟上传进度: 0 -> 90% in ~2 seconds (保留10%给成功动画)
const interval = setInterval(() => {
setProgress(prev => {
if (prev >= 90) return prev;
@@ -642,9 +643,25 @@ const UploadDocModal: React.FC<{
}, 150);
try {
await onUpload(kbId, filename.trim(), fileType, fileSize);
const formData = new FormData();
if (selectedFile) {
formData.append('file', selectedFile);
}
formData.append('filename', filename.trim());
formData.append('file_type', fileType);
formData.append('file_size', String(fileSize));
const token = localStorage.getItem('aiflow_token');
const res = await fetch(`/app/api/knowledge/bases/${kbId}/documents`, {
method: 'POST',
headers: { 'Authorization': `Bearer ${token}` },
body: formData,
});
const data = await res.json();
if (!res.ok || data.code !== 0) {
throw new Error(data.message || data.detail || '上传失败');
}
clearInterval(interval);
// 上传成功后先显示100% 800ms,让进度条动画完整可见,再关闭弹窗
setProgress(100);
setTimeout(() => {
onClose();