2017-10-01 3 views
0

Je veux envoyer la photo sélectionnée par l'utilisateur dans mon application à Firebase Storage. J'ai une classe simple avec la propriété _imageFile qui est défini comme suit:Flutter & Firebase: Envoyer le fichier en tant qu'image

File _imageFile; 

_getImage() async { 
    var fileName = await ImagePicker.pickImage(); 
    setState(() { 
     _imageFile = fileName; 
    }); 
} 

après que je vous envoie la photo comme avec ce code:

final String rand1 = "${new Random().nextInt(10000)}"; 
final String rand2 = "${new Random().nextInt(10000)}"; 
final String rand3 = "${new Random().nextInt(10000)}"; 
final StorageReference ref = FirebaseStorage.instance.ref().child('${rand1}_${rand2}_${rand3}.jpg'); 
final StorageUploadTask uploadTask = ref.put(_imageFile); 
final Uri downloadUrl = (await uploadTask.future).downloadUrl; 
print(downloadUrl); 

Mon problème apparaît dans la console firebase:

enter image description here La photo a le type application/octet au lieu de image/png. Y a-t-il un moyen de régler cela? Ou peut-être est-ce un bon comportement et je ne devrais pas m'inquiéter ici des types? Qu'en est-il du téléchargement de cette photo?

Mon dependencies:

image_picker: 0.1.1 
firebase_storage: 0.0.6 

Répondre

1

Le plugin firebase_storage ne dispose pas d'une API pour spécifier les métadonnées du fichier téléchargé. Si vous vouliez ajouter ceci, ce serait assez simple et vous pourriez nous envoyer une demande d'extraction. Cependant, il n'y a rien de mal avec application/octet-stream; C'est un type mime général pour les fichiers binaires qui devrait bien se dérouler dans la plupart des situations.