将URL从URL上传到Firebase存储
我想知道如何通过URL将文件上传到Firebase的存储中,而不是通过输入(例如)。我从网站上删除图像并检索它们的URL。我想通过一个foreach语句将这些URL传递给Firebase的存储。现在,我有火力上传,通过输入此代码的工作:将URL从URL上传到Firebase存储
var auth = firebase.auth();
var storageRef = firebase.storage().ref();
function handleFileSelect(evt) {
evt.stopPropagation();
evt.preventDefault();
var file = evt.target.files[0];
var metadata = {
'contentType': file.type
};
// Push to child path.
var uploadTask = storageRef.child('images/' + file.name).put(file, metadata);
// Listen for errors and completion of the upload.
// [START oncomplete]
uploadTask.on('state_changed', null, function(error) {
// [START onfailure]
console.error('Upload failed:', error);
// [END onfailure]
}, function() {
console.log('Uploaded',uploadTask.snapshot.totalBytes,'bytes.');
console.log(uploadTask.snapshot.metadata);
var url = uploadTask.snapshot.metadata.downloadURLs[0];
console.log('File available at', url);
// [START_EXCLUDE]
document.getElementById('linkbox').innerHTML = '<a href="' + url + '">Click For File</a>';}
问我该怎么更换
var文件= evt.target.files [0];
与使它与外部URL而不是手动上载过程?
var file =“http://i.imgur.com/eECefMJ.jpg”;不起作用!
如果您只是在保存url路径,则无需使用Firebase存储。 Firebase存储用于物理文件,而Firebase实时数据库可用于结构化数据。
示例。一旦你从外部站点获得图像的URL,这是所有你将需要:
var externalImageUrl = 'https://foo.com/images/image.png';
then you would store this in your json structured database:
databaseReference.child('whatever').set(externalImageUrl);
OR
如果要真正地从外部站点下载的物理图像直接存储,那么这将需要发送HTTP请求和接收响应斑点或大概可能需要服务器侧语言..
JavaScript解决方案:https://ausdemmaschinenraum.wordpress.com/2012/12/06/how-to-save-a-file-from-a-url-with-javascript/
PHP解决方案:Saving image from PHP URL
嘿,谢谢你的回复!我正试图保存物理图像!我会尝试你给的建议! – HalesEnchanted
没问题!我玩了这个小小的我自己,并想出了这个:http://codepen.io/theConstructor/pen/vKNRdE – KpTheConstructor
嘿,我试图让它与Firebase一起工作,但它的行为疯狂哈哈。这是正确的吗? var uploadTask = storageRef.child('trial /'+ filename).put.xhr('GET',url); – HalesEnchanted
没有必要使用存储来存储它们(也许不可能)。链接是字符串,将它们存储在数据库中,就像其他数据一样。 – theblindprophet