|
@@ -283,7 +283,6 @@ export default {
|
|
|
this.getData();
|
|
|
},
|
|
|
async beforeUpload(event) {
|
|
|
- // const loading = this.openLoading();
|
|
|
let file = "";
|
|
|
let cfindex2 = 0;
|
|
|
this.proVisible = true;
|
|
@@ -291,85 +290,63 @@ export default {
|
|
|
"csv","xls","xlsx","md","pdf","txt","ppt","pptx","docx"
|
|
|
];
|
|
|
|
|
|
- for (var cfindex = 0; cfindex < event.target.files.length; cfindex++) {
|
|
|
- file = event.target.files[cfindex];
|
|
|
- const fileExtension = file.name.split('.').pop().toLowerCase();
|
|
|
-
|
|
|
- if (!allowedExtensions.includes(fileExtension)) {
|
|
|
- this.$message.error(`不支持的文件格式: ${file.name}`);
|
|
|
+ const uploadFiles = async (files) => {
|
|
|
+ for (let cfindex = 0; cfindex < files.length; cfindex++) {
|
|
|
+ file = files[cfindex];
|
|
|
+ const fileExtension = file.name.split('.').pop().toLowerCase();
|
|
|
+
|
|
|
+ if (!allowedExtensions.includes(fileExtension)) {
|
|
|
+ this.$message.error(`不支持的文件格式: ${file.name}`);
|
|
|
+ cfindex2++;
|
|
|
+ continue; // 跳过不支持的文件
|
|
|
+ }
|
|
|
+
|
|
|
+ let uuid = uuidv4();
|
|
|
+ let formData = new FormData();
|
|
|
+ const timestamp = Date.now();
|
|
|
+ const baseName = file.name.slice(0, -(fileExtension.length + 1));
|
|
|
+ let string = [this.folderid, this.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");
|
|
|
+
|
|
|
+ // 使用同步方式上传文件
|
|
|
+ await this.uploadFile(formData, file.name, uuid);
|
|
|
cfindex2++;
|
|
|
- setTimeout(() => {
|
|
|
- if (
|
|
|
- cfindex2 == event.target.files.length ||
|
|
|
- cfindex2 > event.target.files.length
|
|
|
- ) {
|
|
|
- this.proVisible = false;
|
|
|
- }
|
|
|
- }, 1000);
|
|
|
- continue; // 跳过不支持的文件
|
|
|
- }
|
|
|
|
|
|
- let uuid = uuidv4();
|
|
|
- let formData = new FormData();
|
|
|
- const timestamp = Date.now();
|
|
|
- const baseName = file.name.slice(0, -(fileExtension.length + 1));
|
|
|
- let string = [this.folderid, this.moFolderid].filter(id => id)
|
|
|
- // if(string.length > 1){
|
|
|
- // string = JSON.stringify([string[0], string[1]])
|
|
|
- // }
|
|
|
- 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");
|
|
|
-
|
|
|
-// , this.moFolderid
|
|
|
- // 使用同步方式上传文件
|
|
|
- await this.uploadFile(formData, file.name, uuid);
|
|
|
- cfindex2++;
|
|
|
-
|
|
|
- setTimeout(() => {
|
|
|
- if (
|
|
|
- cfindex2 == event.target.files.length ||
|
|
|
- cfindex2 > event.target.files.length
|
|
|
- ) {
|
|
|
- this.proVisible = false;
|
|
|
+ // 每5秒上传一次
|
|
|
+ if (cfindex < files.length - 1) {
|
|
|
+ await new Promise(resolve => setTimeout(resolve, 5000));
|
|
|
}
|
|
|
- }, 1000);
|
|
|
- }
|
|
|
+ }
|
|
|
+ this.proVisible = false;
|
|
|
+ this.$message.success("上传成功");
|
|
|
+ this.getData(); // 在上传完所有文件后再调用getData
|
|
|
+ };
|
|
|
+
|
|
|
+ await uploadFiles(event.target.files);
|
|
|
},
|
|
|
async uploadFile(formData, name, uuid) {
|
|
|
try {
|
|
|
- // 确保formData是正确的格式
|
|
|
- // this.$store.state.fileApi + "upload"
|
|
|
this.ajax.post("https://r2rserver.cocorobo.cn/v3/documents", formData, {
|
|
|
headers: {
|
|
|
- 'Content-Type': 'multipart/form-data' // 修改为multipart/form-data以避免乱码
|
|
|
+ 'Content-Type': 'multipart/form-data'
|
|
|
}
|
|
|
});
|
|
|
|
|
|
- let docid = uuid
|
|
|
+ let docid = uuid;
|
|
|
let params = {
|
|
|
n: name,
|
|
|
did: docid,
|
|
|
uid: this.userid,
|
|
|
fid: this.folderid,
|
|
|
mofid: this.moFolderid != this.folderid ? this.moFolderid : ""
|
|
|
- }
|
|
|
+ };
|
|
|
const res2 = await this.ajax.post(this.$store.state.api + 'addFile', [params]);
|
|
|
|
|
|
console.log(res2);
|
|
|
- let id2 = res2.data[0][0].id
|
|
|
- // if(this.moFolderid != this.folderid){
|
|
|
- // let params = {
|
|
|
- // documentids: docid,
|
|
|
- // ids: id2,
|
|
|
- // folderid: this.moFolderid,
|
|
|
- // }
|
|
|
- // await this.ajax.post(this.$store.state.fileApi + 'moveFile', [params]);
|
|
|
- // }
|
|
|
- this.$message.success("上传成功");
|
|
|
- this.getData();
|
|
|
} catch (err) {
|
|
|
console.error(err);
|
|
|
this.$message.error("上传失败");
|