2016-08-20 2 views
0

Я использую ionic2 beta 11 и firebase 3. Я хотел бы попытаться загрузить какое-то изображение в хранилище firebase. Я установил home.ts, но я столкнулся с следующей ошибкой:Использование ionic2 для загрузки изображения в хранилище firebase

Ошибка TS2345: Аргумент типа 'string' не присваивается параметру типа 'Blob'.

// следовать указаниям https://firebase.google.com/docs/storage/web/upload-files

import * as firebase from 'firebase'; 

public storageRef : any; 

constructor() {} 

uploadfile(){ 

var file = "http://imgs.sundaykiss.com/wp-content/uploads/2016/08/278k_kissfocus09.jpg"; 

var metadata = { 
    contentType: 'image/jpeg' 
}; 

var storageRef = firebase.storage().ref('images/' + file); 

var uploadTask = storageRef.put(file, metadata); 

// редактор хотел, чтобы я файл выше, аргумент типа «строка» не может быть назначен для параметра типа «Blob».

Могу ли я узнать, почему? Большое спасибо.

ответ

0

put() принимает файлы через JavaScript File и Blob APIs Не такая строка, как вы ее даете. Если у вас нет файла в форме потока байтов, вам нужно будет прочитать его из url в blob/file.

+0

Большое спасибо! Я попытался прочитать эти документы, но я не могу сделать URL-адрес изображения в blob/file, пожалуйста, пожалуйста, приложите пример? Еще раз спасибо! –

+0

Ссылка на пример http://stackoverflow.com/questions/25046301/convert-url-to-file-or-blob-for-filereader-readasdataurl – misha130

0

Поскольку вы используете удаленный URL-адрес, вы должны иметь возможность использовать polyfill fetch, чтобы получить blob с изображения.

npm module whatwg-fetch

makeFileIntoBlob(_imagePath) { 
    return fetch(_imagePath).then((_response) => { 
     return _response.blob(); 
    }).then((_blob) => { 
     return _blob; 
    }); 
    } 

полный пример здесь https://github.com/aaronksaunders/firebaseStorage2

Существует также YouTube видео, показывающее весь процесс Ionic2 Firebase Image Upload

Смежные вопросы