UNPKG

@churchapps/apphelper

Version:

Library of helper functions for React and NextJS ChurchApps

32 lines (26 loc) 1.14 kB
import axios from "axios"; export class FileHelper { static postPresignedFile = (presigned: any, uploadedFile: File, progressCallback: (percent: number) => void) => { const formData = new FormData(); //formData.append("key", presigned.key); //no longer needed with new aws sdk formData.append("acl", "public-read"); formData.append("Content-Type", uploadedFile.type); for (const property in presigned.fields) formData.append(property, presigned.fields[property]); formData.append("file", uploadedFile); const axiosConfig = { headers: { "Content-Type": "multipart/form-data" }, onUploadProgress: (data: any) => { progressCallback(Math.round((100 * data.loaded) / data.total)); } }; return axios.post(presigned.url, formData, axiosConfig); }; static dataURLtoBlob(dataurl: string) { let arr = dataurl.split(","), mime = arr[0].match(/:(.*?);/)[1], bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n); while (n--) { u8arr[n] = bstr.charCodeAt(n); } return new Blob([u8arr], { type: mime }); } }