字符串与格式'base64'不匹配:找到无效字符,目前只能从其他Blob创建Blob反应本机
问题描述:
我尝试将图像上传到Firebase。我正在使用'react-native-image-picker',但每当我收到错误。 Firebase存储:字符串与格式“base64”不匹配:找到无效字符。我看到很多帖子与此问题有关,但没有任何工作。字符串与格式'base64'不匹配:找到无效字符,目前只能从其他Blob创建Blob反应本机
uploadImage = response = >
{
let metadata = {
contentType: response.type
}
let randomId = shortid.generate()
let fileExtension
if (Platform.OS == "android") fileExtension = response.type.split("/")[1]
else
{
fileExtension = response.fileName.split(".")[1]
}
let storagePath =
"/Base_Url/" +
this.props.username +
"/" +
this.props.sessionId +
"/" +
randomId +
"." +
fileExtension
let storingRef = firebase.storage()
.ref(storagePath);
storingRef.putString(response.data, "base64url", metadata)
.on(
firebase.storage.TaskEvent.STATE_CHANGED,
snapshot = >
{
var progress =
snapshot.bytesTransferred/snapshot.totalBytes * 100;
if (progress === 100)
{
let downloadURL = FireBaseUtils.getDownloadURL(storagePath);
this.setState(
{
url: snapshot.downloadURL
});
}
else
{
switch (snapshot.state)
{
case firebase.storage.TaskState.PAUSED:
break;
case firebase.storage.TaskState.RUNNING:
break;
}
}
},
error = >
{
switch (error.code)
{
case "storage/unauthorized":
break;
case "storage/canceled":
break;
case "storage/unknown":
break;
}
}
);
};
答
尝试使用putString(message, 'base64')
(不base64url
)
如果斑点,文件或Uint8Array不可用,则可以使用 putString()方法上载生,BASE64, base64url或data_url 编码的字符串到云存储。
https://firebase.google.com/docs/storage/web/upload-files
希望它可以帮助
我试图putString(消息 '的base64'),但它也没有工作 –
你能尝试添加'子(23)',好吗?就像'toringRef.putString(response.data.substring(23),“base64”)'让我知道它是否有帮助 – soutot
是的,我已经尝试....那一个 –