@churchapps/apphelper
Version:
Library of helper functions for React and NextJS ChurchApps
29 lines • 1.16 kB
JavaScript
import axios from "axios";
export class FileHelper {
static dataURLtoBlob(dataurl) {
const arr = dataurl.split(","), mime = arr[0].match(/:(.*?);/)[1], bstr = atob(arr[1]);
let n = bstr.length;
const u8arr = new Uint8Array(n);
while (n--) {
u8arr[n] = bstr.charCodeAt(n);
}
return new Blob([u8arr], { type: mime });
}
}
FileHelper.postPresignedFile = (presigned, uploadedFile, progressCallback) => {
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) => {
progressCallback(Math.round((100 * data.loaded) / data.total));
}
};
return axios.post(presigned.url, formData, axiosConfig);
};
//# sourceMappingURL=FileHelper.js.map