uploadR2R.js 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. window.uploadFile = async function ({ file, uuid, userid, folderid, moFolderid }) {
  2. const allowedExtensions = [
  3. "csv", "xls", "xlsx", "md", "pdf", "txt", "ppt", "pptx", "docx"
  4. ];
  5. const fileExtension = file.name.split('.').pop().toLowerCase();
  6. if (!allowedExtensions.includes(fileExtension)) {
  7. return { code: 400, msg: `不支持的文件格式: ${file.name}` }
  8. }
  9. let formData = new FormData();
  10. const timestamp = Date.now();
  11. const baseName = file.name.slice(0, -(fileExtension.length + 1));
  12. let string = [folderid, moFolderid].filter(id => id);
  13. formData.append('file', new File([file], `${baseName}${timestamp}.${fileExtension}`));
  14. formData.append('collection_ids', JSON.stringify(string));
  15. formData.append('id', uuid);
  16. formData.append('metadata', JSON.stringify({ title: file.name, collection_ids: string }));
  17. formData.append('ingestion_mode', "fast");
  18. try {
  19. fetch("https://r2rserver.cocorobo.cn/v3/documents", {
  20. method: 'POST',
  21. body: formData,
  22. headers: {
  23. 'Accept': 'application/json',
  24. }
  25. });
  26. let params = {
  27. n: file.name,
  28. did: uuid,
  29. uid: userid,
  30. fid: folderid,
  31. mofid: moFolderid !== folderid ? moFolderid : ""
  32. };
  33. const encoded = {};
  34. for (const key in params) {
  35. if (Object.hasOwnProperty.call(params, key)) {
  36. encoded[key] = encodeURIComponent(params[key]);
  37. }
  38. }
  39. const res2 = await fetch('https://pbl.cocorobo.cn/api/pbl/addFile', {
  40. method: 'POST',
  41. headers: {
  42. 'Accept': 'application/json',
  43. 'Content-Type': 'application/json;charset=UTF-8'
  44. },
  45. body: JSON.stringify(encoded)
  46. });
  47. console.log("上传成功");
  48. return { code: 200, msg: "上传成功" }
  49. } catch (err) {
  50. console.error(err);
  51. console.error("上传失败");
  52. return { code: 400, msg: "上传失败" }
  53. }
  54. }