| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- 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);
- };
|