我有檔案要從reactjs上傳至firebase。
這些檔案是這樣的:它們有很多的屬性:
[File {path: 'image1.jpg', index: 0, fName: 'imageBall1.jpg', type: 'jpg', ...},
File {path: 'image2.jpg', index: 1, fName: 'imageBall2.jpg', type: 'jpg', ...}]
我想在上傳前調整大小,所以我做了這個代碼
export const resizeFile = async imageFiles => {
return await imageFiles.map(async file => {
const a = await new 承諾((resolve) => {
Resizer.imageFileResizer(
檔案。
300,
300,
"JPEG"。
100,
0,
(uri) => {
resolve(uri)。
},
"base64"/span>
);
});
console.log('file', file, a)
return a
})
}
但我得到的是這樣的結果:
Blob data: image/jpeg; base64。 /9j/4AAQSkZJRgABAQAAAQABAAD/4gIoSUNDX1BST0ZJTEUAAQEAAAIYAAAAAAIQAABtbnRyUkdCIFhZWiAAAAAAAAAAAAAAAABhY3NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA9tYAAQAAAADTLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlkZXNjAAAA8AAAAHRyWFlaAAABZAAAABRnWFlaAAABeAAAABRiWFlaAAABjAAAABRyVFJDAAABoAAAAChnVFJDAAABoAAAAChiVFJDAAAB
我不能上傳到firebase,我怎樣才能調整影像的大小以上傳到firebase呢?或者我應該把二進制檔案再次轉換成影像?
我寧愿用圖片而不是二進制檔案上傳
。uj5u.com熱心網友回復:
你可以在你的base64字串中洗掉data:image/jpeg;base64,/code>。然后你用
.putString(image, 'base64', {contentType:'image/jpg'});來上傳到Firebase。
確保你有{contentType:'image/jpg'}來讓firebase知道檔案型別。
你可以在這里找到更多。 https://firebase.google.com/docs/storage/web/upload-files#upload_from_a_string
uj5u.com熱心網友回復:
你所擁有的是一個base-64編碼的jpg的二進制表示。這通常是可以發送到服務器的。影像檔案,就像所有的檔案一樣,只是具有特定檔案名或特殊頭檔案的二進制檔案,這些檔案表明消費應用程式應該如何使用它們。大量的應用程式,包括網路瀏覽器,可以消費base-64編碼的影像。請參閱這里,了解如何將base-64字串呈現為影像的例子。我相信如果你在Firebase中存盤一個新的檔案,其中的內容是你的base-64字串,你將能夠像其他影像一樣使用產生的檔案。Firebase甚至在檔案中提供了一個上傳base-64字串的例子。
。轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/322736.html
標籤:
下一篇:實用組件內部的鉤子
