Proje: Okul B2B App · Hub: Okul B2B App — Incidents
Android Medya Yükleme Sorunu — FileSystem ve XHR Fallback
Semptom
Android’de galeri fotoğrafı yükleme başarısız oluyor. iOS’ta çalışan upload kodu Android’de hata veriyor.
Root Cause
Android’de fetch ile FormData fotoğraf yükleme birden fazla soruna yol açıyor:
file://URI’lar fetch’te farklı işleniyor- Content-Type multipart boundary otomatik eklenmesi Android’de farklı
- XHR ve FileSystem.uploadAsync farklı davranıyor cihaza göre
Çözüm — İki Yedekli Strateji
// 1. Önce expo-file-system.uploadAsync dene (MULTIPART)
const result = await uploadMediaAndroidFileSystem(request);
if (result) return result;
// 2. Başarısız olursa XHR ile birden fazla format dene
const xhrResult = await uploadMediaAndroidXHR(request);
if (xhrResult) return xhrResult;
// 3. Son çare: fetch ile standart uploadAndroid FileSystem Özel Header’lar
delete headers['Content-Type']; // Multipart için kaldır (boundary otomatik)
headers['X-Upload-Platform'] = 'android-filesystem';XHR File Variants
Android için birden fazla FormData file object formatı denenir:
{ uri, type, name }— Standart{ uri, type, name, filePath }— Explicit path{ uri, type, name, data: base64 }— Base64 fallback
Ders
Android medya yükleme için:
expo-file-system.uploadAsync(MULTIPART)en güvenilir yöntem- XHR fallback ile backup sağla
- Content-Type header’ını manuel koyma (multipart boundary’yi bozar)
Related
- medya-yukleme-akisi — upload akışı
- android-modal-status-bar — diğer Android platform sorunları