我從網路帳戶上傳了影像,此影像也顯示在移動設備上,但是當我從移動設備上傳影像時,它無法在網路或任何其他移動設備上顯示
因為在資料庫中 web 影像 uri 是可讀的,但移動影像 uri 不可讀 我的影像選擇器代碼
const pickImage = async () => {
// No permissions request is necessary for launching the image library
let result = await ImagePicker.launchImageLibraryAsync({
mediaTypes: ImagePicker.MediaTypeOptions.All,
base64: true,
});
圖片來自網路上傳

圖片從手機上傳

uj5u.com熱心網友回復:
您將在 web 上看到檔案的 uri 是 base64 欄位的 base64 前置版本。
在移動設備上,您需要上傳它而不是使用 fileUri。為了跨平臺保持一致并避免撰寫重復代碼,只需保存 base64 結果即可。
const { base64 } = await ImagePicker.launchImageLibraryAsync({
mediaTypes: ImagePicker.MediaTypeOptions.All,
base64: true,
});
const base64ToUpload = `data:image/jpeg;base64,${base64}`;
您還應該考慮從所選檔案中確定 fileType,因為它不能保證是 jpeg(當然取決于您的實作)。
您遇到問題的原因是 Web 實作為您提供了檔案的 base64 表示,但在移動設備上,您正在本地存盤中獲取檔案的位置,這是兩種截然不同的內容。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/403675.html
標籤:
上一篇:反應原生導航v6身份驗證流程
