You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Describe the bug
I'm replacing react-native-fetch-blob with this library. This library seems to force form-data when using the uploadBlob API. This results in a corrupted upload. (upload is to google cloud storage)
const res = await BlobCourier.uploadBlob(request);
Expected behavior
File is uploaded correctly.
Actual behavior
The headers end up inside the uploaded file: Screenshots
I opened the binary png file, in a text editor , as you can see its corrupt and the headers are in the uploaded file.
Desktop (please complete the following information):
OS: [e.g. iOS]
Browser [e.g. chrome, safari]
Version [e.g. 22]
Smartphone (please complete the following information):
Device: [e.g. iPhone6]
OS: [e.g. iOS8.1]
Browser [e.g. stock browser, safari]
Version [e.g. 22]
Additional context
Add any other context about the problem here.
The text was updated successfully, but these errors were encountered:
giantslogik
changed the title
uploadBlob without form Data
uploadBlob with HTTP PUT corrupted
Jul 3, 2024
@edeckers I believe google cloud storage and other PUT based uploads, should not be using form data.
I replaced the blob-courier code with the following:
const localFile = await fetch(filePath);
const blob = await localFile.blob();
var xhr = new XMLHttpRequest();
xhr.open('PUT', url, true);
xhr.onload = function () {
if (xhr.status >= 200 && xhr.status < 300) {
....
} else {
....
}
};
xhr.onerror = function () {
...
};
xhr.upload.onprogress = function () {
...
};
xhr.setRequestHeader('Accept', 'application/json');
xhr.setRequestHeader('Content-Type', mimeType || 'application/octet-stream');
xhr.send(blob);
Describe the bug
I'm replacing react-native-fetch-blob with this library. This library seems to force form-data when using the uploadBlob API. This results in a corrupted upload. (upload is to google cloud storage)
To Reproduce
const request = {
absoluteFilePath: filePath,
method: 'PUT',
mimeType: mimeType || 'application/octet-stream',
url,
onProgressWrap,
progressIntervalMilliseconds: 250,
};
const res = await BlobCourier.uploadBlob(request);
Expected behavior
File is uploaded correctly.
Actual behavior
The headers end up inside the uploaded file:
Screenshots
I opened the binary png file, in a text editor , as you can see its corrupt and the headers are in the uploaded file.
Desktop (please complete the following information):
Smartphone (please complete the following information):
Additional context
Add any other context about the problem here.
The text was updated successfully, but these errors were encountered: