window.uploadFile = async function ({ file, uuid, userid, folderid, moFolderid }) { const allowedExtensions = [ "csv", "xls", "xlsx", "md", "pdf", "txt", "ppt", "pptx", "docx" ]; const fileExtension = file.name.split('.').pop().toLowerCase(); if (!allowedExtensions.includes(fileExtension)) { return { code: 400, msg: `不支持的文件格式: ${file.name}` } } let formData = new FormData(); const timestamp = Date.now(); const baseName = file.name.slice(0, -(fileExtension.length + 1)); let string = [folderid, moFolderid].filter(id => id); formData.append('file', new File([file], `${baseName}${timestamp}.${fileExtension}`)); formData.append('collection_ids', JSON.stringify(string)); formData.append('id', uuid); formData.append('metadata', JSON.stringify({ title: file.name, collection_ids: string })); formData.append('ingestion_mode', "fast"); try { fetch("https://r2rserver.cocorobo.cn/v3/documents", { method: 'POST', body: formData, headers: { 'Accept': 'application/json', } }); let params = { n: file.name, did: uuid, uid: userid, fid: folderid, mofid: moFolderid !== folderid ? moFolderid : "" }; const encoded = {}; for (const key in params) { if (Object.hasOwnProperty.call(params, key)) { encoded[key] = encodeURIComponent(params[key]); } } const res2 = await fetch('https://pbl.cocorobo.cn/api/pbl/addFile', { method: 'POST', headers: { 'Accept': 'application/json', 'Content-Type': 'application/json;charset=UTF-8' }, body: JSON.stringify(encoded) }); console.log("上传成功"); return { code: 200, msg: "上传成功" } } catch (err) { console.error(err); console.error("上传失败"); return { code: 400, msg: "上传失败" } } }