uploadR2R.js 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  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 = new URLSearchParams({
  27. n: file.name,
  28. did: uuid,
  29. uid: userid,
  30. fid: folderid,
  31. mofid: moFolderid !== folderid ? moFolderid : ""
  32. }).toString();
  33. const res2 = await fetch('https://r2rapi.cocorobo.cn/file/addFile', {
  34. method: 'POST',
  35. headers: {
  36. 'Content-Type': 'application/x-www-form-urlencoded'
  37. },
  38. body: params
  39. });
  40. console.log("上传成功");
  41. return { code: 200, msg: "上传成功" }
  42. } catch (err) {
  43. console.error(err);
  44. console.error("上传失败");
  45. return { code: 400, msg: "上传失败" }
  46. }
  47. }