2016-08-20 55 views
0

我正在使用ionic2 beta 11和firebase 3.我想尝试上传一些图片到firebase存储。我已经设置了一个home.ts,但遇到以下错误:使用ionic2将图片上传到firebase存储

错误TS2345:类型'字符串'的参数不能分配给'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); 

指令//编辑希望我上面的文件,文件类型参数“弦”是不能分配给类型的参数“斑点”。

我可以知道为什么吗?非常感谢。

回答

0

put()通过JavaScript获取文件FileBlob API 不是像您所给的字符串。 如果你没有字节流形式的文件,你必须从URL读取到一个blob /文件。

+0

非常感谢YouTube视频!我试图阅读这些文档,但我不能将URL图像制作成blob/file,请您举一个例子吗?非常感谢! –

+0

指向示例的链接http://stackoverflow.com/questions/25046301/convert-url-to-file-or-blob-for-filereader-readasdataurl – misha130

0

由于您使用的是远程URL,因此您应该可以使用fetch填充图像来获取图像中的斑点。

npm module whatwg-fetch

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

完整的例子就是在这里https://github.com/aaronksaunders/firebaseStorage2

还有显示整个过程Ionic2 Firebase Image Upload

相关问题