mirror of
https://github.com/infiniflow/ragflow.git
synced 2025-12-08 20:42:30 +08:00
### What problem does this PR solve? fix: Set the default value of Self RAG to false #1220 fix: Change all tool file names to kebab format ### Type of change - [x] Bug Fix (non-breaking change which fixes an issue)
This commit is contained in:
87
web/src/utils/file-util.ts
Normal file
87
web/src/utils/file-util.ts
Normal file
@ -0,0 +1,87 @@
|
||||
import { UploadFile } from 'antd';
|
||||
|
||||
export const transformFile2Base64 = (val: any): Promise<any> => {
|
||||
return new Promise((resolve, reject) => {
|
||||
const reader = new FileReader();
|
||||
reader.readAsDataURL(val);
|
||||
reader.onload = (): void => {
|
||||
resolve(reader.result);
|
||||
};
|
||||
reader.onerror = reject;
|
||||
});
|
||||
};
|
||||
|
||||
export const transformBase64ToFile = (
|
||||
dataUrl: string,
|
||||
filename: string = 'file',
|
||||
) => {
|
||||
let arr = dataUrl.split(','),
|
||||
bstr = atob(arr[1]),
|
||||
n = bstr.length,
|
||||
u8arr = new Uint8Array(n);
|
||||
|
||||
const mime = arr[0].match(/:(.*?);/);
|
||||
const mimeType = mime ? mime[1] : 'image/png';
|
||||
|
||||
while (n--) {
|
||||
u8arr[n] = bstr.charCodeAt(n);
|
||||
}
|
||||
return new File([u8arr], filename, { type: mimeType });
|
||||
};
|
||||
|
||||
export const normFile = (e: any) => {
|
||||
if (Array.isArray(e)) {
|
||||
return e;
|
||||
}
|
||||
return e?.fileList;
|
||||
};
|
||||
|
||||
export const getUploadFileListFromBase64 = (avatar: string) => {
|
||||
let fileList: UploadFile[] = [];
|
||||
|
||||
if (avatar) {
|
||||
fileList = [{ uid: '1', name: 'file', thumbUrl: avatar, status: 'done' }];
|
||||
}
|
||||
|
||||
return fileList;
|
||||
};
|
||||
|
||||
export const getBase64FromUploadFileList = async (fileList?: UploadFile[]) => {
|
||||
if (Array.isArray(fileList) && fileList.length > 0) {
|
||||
const file = fileList[0];
|
||||
const originFileObj = file.originFileObj;
|
||||
if (originFileObj) {
|
||||
const base64 = await transformFile2Base64(originFileObj);
|
||||
return base64;
|
||||
} else {
|
||||
return file.thumbUrl;
|
||||
}
|
||||
// return fileList[0].thumbUrl; TODO: Even JPG files will be converted to base64 parameters in png format
|
||||
}
|
||||
|
||||
return '';
|
||||
};
|
||||
|
||||
export const downloadFile = ({
|
||||
url,
|
||||
filename,
|
||||
target,
|
||||
}: {
|
||||
url: string;
|
||||
filename?: string;
|
||||
target?: string;
|
||||
}) => {
|
||||
const downloadElement = document.createElement('a');
|
||||
downloadElement.style.display = 'none';
|
||||
downloadElement.href = url;
|
||||
if (target) {
|
||||
downloadElement.target = '_blank';
|
||||
}
|
||||
downloadElement.rel = 'noopener noreferrer';
|
||||
if (filename) {
|
||||
downloadElement.download = filename;
|
||||
}
|
||||
document.body.appendChild(downloadElement);
|
||||
downloadElement.click();
|
||||
document.body.removeChild(downloadElement);
|
||||
};
|
||||
Reference in New Issue
Block a user