diff --git a/web/eclipse/src/pages/upload/Upload.tsx b/web/eclipse/src/pages/upload/Upload.tsx index ad6d688..06df25e 100644 --- a/web/eclipse/src/pages/upload/Upload.tsx +++ b/web/eclipse/src/pages/upload/Upload.tsx @@ -11,6 +11,16 @@ import { RequestCollection } from "../../providers/Requests" const uploadRequest = RequestCollection.uploadFile +async function getFileBytes(file: File): Promise { + if (typeof file.bytes === "function") { + // Safari/WebKit + return file.bytes(); + } else { + // Chrome/Firefox + return new Uint8Array(await file.arrayBuffer()); + } +} + export default function Upload() { const params = useParams() const { path } = { @@ -39,7 +49,7 @@ export default function Upload() { const file = fileInput.files[0] const uplFilename = (filename.trim() == "" ? file.name : filename).trim() - uploadRequest.uploadFile(path, uplFilename, await file.bytes()) + uploadRequest.uploadFile(path, uplFilename, await getFileBytes(file)) .then((resp) => { if (resp.data) { setIsLoading(false)