javascript - 将图片从 URL 上传到 Firebase 存储

标签 javascript firebase firebase-storage

我想知道如何通过 URL 而不是输入(例如)将文件上传到 Firebase 的存储中。我正在从网站上抓取图片并检索它们的 URLS。我想通过 foreach 语句传递这些 URLS 并将它们上传到 Firebase 的存储。现在,我有使用此代码的 firebase upload-via-input:

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 file = evt.target.files[0];

使用外部 URL 而不是手动上传过程?

var 文件 = "http://i.imgur.com/eECefMJ.jpg ";不起作用!

最佳答案

如果您所做的只是保存 url 路径,则无需使用 Firebase 存储。 Firebase 存储用于物理文件,而 Firebase 实时数据库可用于结构化数据。

例子。一旦您从外部站点获得图像 url,这就是您所需要的:

var externalImageUrl = 'https://foo.com/images/image.png';

然后你会把它存储在你的 json 结构化数据库中:

databaseReference.child('whatever').set(externalImageUrl);

如果你真的想直接从外部站点下载物理图像到存储,那么这将需要发出一个 http 请求并接收一个 blob 响应,或者可能需要一种服务器端语言..

Javascript 解决方案:How to save a file from a url with javascript

PHP 解决方案:Saving image from PHP URL

关于javascript - 将图片从 URL 上传到 Firebase 存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37686213/

相关文章:

javascript - AngularJS:下拉列表中的月份过滤器

javascript - 如果使 jquery 函数可在选择器上调用,我如何在被调用函数中检索选择器?

javascript - Firechat/Firebase 用户管理员

android - 在飞行模式下发送多个远程推送通知,当重新连接时只收到最后一个

java - 上传到 FirebaseStorage 之前进行图像压缩

ios - Firebase 存储图像缓存不更新 SWIFT

javascript - 注销并重新登录后,Angular 1.x 组件绑定(bind)不会更新

javascript - 在调用回调之前如何等待异步创建的对象完全可用?

javascript - 观察 Vue Observable 中的变化

ios - Swift:从 Firebase 加载时图像从纵向旋转为横向