如何在 Firebase 中使用 HTML 和 JavaScript 上传图像?

javascriptweb developmentfront end technology

在本教程中,您将了解使用 HTML 和 JavaScript 在 Firebase 中上传图像的过程。

Firebase − Firebase 是一个基于云的存储平台,是 Google 的产品,提供用于各种网络和移动应用程序开发的存储服务。它提供 NoSQL 和数据库的实时托管、身份验证、通知、内容以及更多服务。

在 Firebase 中使用 HTML 和 JavaScript 上传图像的步骤

要将 Firebase 连接到项目,您应该在 Firebase 上创建一个项目,以下是创建和激活存储服务以将图像上传到 Firebase 存储的分步过程。

步骤 1 - 访问 Firebase 网站并单击"开始"按钮,要创建新项目,请单击"创建项目/添加项目"按钮。

步骤 2 - 添加项目名称,然后按继续。

步骤 3 - 单击继续。

步骤 4 - 选择 Analytics 位置选项,然后单击创建项目按钮。

步骤 5 - 单击继续,然后单击图像下方显示的第三个图标,即网络按钮 </>,因为我们将从网站上传图像,因此我们需要相关配置。

步骤 6 - 给出您的应用名称,然后单击注册应用。

步骤 7 - 保存代码,因为您稍后将在代码部分使用它,然后单击继续控制台。

步骤 8 − 从左侧窗格中,扩展 Build 并单击 Realtime Database

步骤 9 − 单击 Create database。选择实时数据库位置并单击下一步

步骤 10 - 选择测试模式并单击启用按钮

步骤 11 - 从左侧窗格中,扩展构建并单击存储

步骤 12 - 单击开始。再次,将打开一个弹出窗口,选择测试模式,然后单击下一步,单击完成

编码部分

注意 - 添加我们已在步骤 7 中保存的值 apiKey、authDomain 等。

const firebaseConfig = {
   apiKey: "***",
   authDomain: "**",
   projectId: "**",
   storageBucket: "**",
   messagingSenderId: "**",
   appId: "**",
   measurementId: "**"
};

我们将创建一个非常简单的前端部分,其中有两个按钮,第一个是文件选择按钮,第二个是上传按钮,选择文件按钮将从您的系统中选择所选文件,然后单击上传按钮将触发上传功能,图像将上传到 Firebase 存储。

示例

<!DOCTYPE html>
<html>
<head>
   <title>Firebase Image Upload using HTML and JavaScript</title>
   <style>
      #photo{
         margin-top: 200px;
         margin-left: 450px;
      }
      #upload{
         margin-top: 20px;
         margin-left: 450px;
      }
   </style>
</head>
<body>
   <input type="file" id="photo" /></br>
   <button id="upload" onclick="uploadImage()">Upload Image</button>
</body>
<script src="https://www.gstatic.com/firebasejs/7.7.0/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/7.7.0/firebase-storage.js"></script>
<script>

   //paste here your copied configuration code
   const firebaseConfig = {
      apiKey: "***",
      authDomain: "**",
      projectId: "**",
      storageBucket: "**",
      messagingSenderId: "**",
      appId: "**",
      measurementId: "**"
   };

   // Initialize Firebase
   firebase.initializeApp(firebaseConfig);
   console.log(firebase);
   function uploadImage() {
      const ref = firebase.storage().ref();
      const file = document.querySelector("#photo").files[0];
      const name = +new Date() + "-" + file.name;
      const metadata = {
         contentType: file.type
      };
      const task = ref.child(name).put(file, metadata);task
      .then(snapshot => snapshot.ref.getDownloadURL())
      .then(url => {
      console.log(url);
      alert('image uploaded successfully');
      document.querySelector("#image").src = url;
   })
   .catch(console.error);
   }
   const errorMsgElement = document.querySelector('span#errorMsg');
</script>
</html>

上传图片后,转到 firebase 页面并单击"文件"进行刷新。这是我们已上传到 firebase 的图片。

Firebase 具有不同的上传图片功能。因此,首先,获取存储桶并使用日期函数生成随机名称,然后使用 put 方法上传像素图片。我们将使用图片源和常量(即 URL)。此 put 方法返回一个承诺,并使用 .then 处理响应。它还返回一个回调函数,该函数返回一个快照变量,我们将在该变量内通知用户图片已成功上传。


相关文章