У меня сложная проблема с хранилищем Firebase - PullRequest
0 голосов
/ 01 июля 2018

Я не могу загрузить простое изображение, какая глупость!

это мой код для загрузки изображения в хранилище Firebase

storage.ref().child(imid).putString(this.state.img.base64 , 'base64')

imid = randomstring() + ".jpg";

this.state.img.base64 = base64string

фактически загружает изображение, но не загружает его как изображение

даже после загрузки загруженного файла со страницы хранилища Firebase

ОС не может понять и открыть ее

enter image description here

1 Ответ

0 голосов
/ 01 июля 2018

На самом деле здесь происходит то, что вы конвертируете изображение в строку base64, и оно сохраняется в виде файла с именем расширения .jpg в хранилище Firebase. Все это удачно, после загрузки в систему вы получили один и тот же файл. Но вы получили файл, который вы сохранили в base64, а не изображение. Означает, что кодировка файла не в формате jpeg, а в текстовом файле. Откройте файл с помощью блокнота или любого текстового редактора, надеюсь, вы увидите строку base 64 внутри.

Только имя файла в формате JPEG, а не кодировка изображения

Да, расширение файла принимается как jpeg, но файл содержит строку base 64, закодированную в виде простого текста. Таким образом, ОС пытается открыть файл в инструменте открытия изображения, вызывая ошибку.

Попробуйте загрузить его как сам файл, а не как base64, или запишите декодер base 64 в базе данных для преобразования и сохранения.

Пожалуйста, пройдите по этой ссылке для полной справки. https://github.com/CodeLinkIO/Firebase-Image-Upload-React-Native

...