2017-10-01 7 views
0

Ich möchte ein Foto, das vom Benutzer in meiner App ausgewählt wurde, an Firebase Storage senden. Ich habe eine einfache Klasse mit Eigenschaft _imageFile die wie folgt festgelegt ist:Flutter & Firebase: Datei als Bild senden

File _imageFile; 

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

nach, dass ich Foto senden wie mit diesem 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); 

Mein Problem erscheint in Feuerbasis Konsole:

enter image description here Foto hat application/octet Typ anstelle von image/png. Gibt es eine Möglichkeit, das zu beheben? Oder ist es vielleicht ein gutes Benehmen und ich sollte mich hier nicht um Typen kümmern? Was ist mit dem Herunterladen dieses Fotos?

Mein dependencies:

image_picker: 0.1.1 
firebase_storage: 0.0.6 

Antwort

1

Die firebase_storage-Plugin zur Zeit nicht über eine API für die Metadaten der hochgeladenen Datei angeben. Wenn Sie das hinzufügen wollten, wäre das ziemlich einfach und Sie könnten uns eine Pull-Anfrage senden. Es ist jedoch nichts falsch mit application/octet-stream; Es ist ein allgemeiner Mime-Typ für Binärdateien, der in den meisten Situationen gut dargestellt werden sollte.