|
@@ -0,0 +1,53 @@
|
|
|
+export async function uploadFile({ file, 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 uuid = uuidv4();
|
|
|
+ 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 {
|
|
|
+ await fetch("https://r2rserver.cocorobo.cn/v3/documents", {
|
|
|
+ method: 'POST',
|
|
|
+ body: formData,
|
|
|
+ headers: {
|
|
|
+ 'Content-Type': 'multipart/form-data'
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ let params = {
|
|
|
+ n: file.name,
|
|
|
+ did: uuid,
|
|
|
+ uid: userid,
|
|
|
+ fid: folderid,
|
|
|
+ mofid: moFolderid !== folderid ? moFolderid : ""
|
|
|
+ };
|
|
|
+ const res2 = await fetch('https://pbl.cocorobo.cn/api/pbl/addFile', {
|
|
|
+ method: 'POST',
|
|
|
+ headers: {
|
|
|
+ 'Content-Type': 'application/json'
|
|
|
+ },
|
|
|
+ body: JSON.stringify([params])
|
|
|
+ });
|
|
|
+ console.log("上传成功")
|
|
|
+ return { code: 200, msg: "上传成功"}
|
|
|
+ } catch (err) {
|
|
|
+ console.error(err);
|
|
|
+ console.error("上传失败");
|
|
|
+ return { code: 400, msg: "上传失败"}
|
|
|
+ }
|
|
|
+}
|