Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将压缩的base64图像转换为文件或Blob以进行Firebase上载(JavaScript)_Javascript_Html_Css_Web Applications_Progressive Web Apps - Fatal编程技术网

如何将压缩的base64图像转换为文件或Blob以进行Firebase上载(JavaScript)

如何将压缩的base64图像转换为文件或Blob以进行Firebase上载(JavaScript),javascript,html,css,web-applications,progressive-web-apps,Javascript,Html,Css,Web Applications,Progressive Web Apps,错误代码:“存储/无效参数”,消息:“Firebase存储:索引0处的put中的无效参数:应为Blob或文件。” 下面是一个JS代码片段,该图像被压缩并转换为base64,然后保存到会话存储中,以便在加载时检索,我的计划也是如此 从会话存储中获取映像并发送到firebase时的代码段 提前向所有人和社区表示深深的感谢 在将图像存储在sessionstorage中之前,您是否已尝试将其发送到firebase?至少这将消除或确认问题是sessionstorage而不是其他问题。我需要在上载图像之前对

错误代码:“存储/无效参数”,消息:“Firebase存储:索引0处的
put
中的无效参数:应为Blob或文件。”

下面是一个JS代码片段,该图像被压缩并转换为base64,然后保存到会话存储中,以便在加载时检索,我的计划也是如此

从会话存储中获取映像并发送到firebase时的代码段

提前向所有人和社区表示深深的感谢


在将图像存储在sessionstorage中之前,您是否已尝试将其发送到firebase?至少这将消除或确认问题是sessionstorage而不是其他问题。我需要在上载图像之前对其进行预览,因此session Storage有时需要执行一些不需要的操作来进行故障排除。。
function process() {
  const file = document.querySelector("#upload").files[0];

  if (!file) return;

  const reader = new FileReader();

  reader.readAsDataURL(file);

  reader.onload = function (event) {
    const imgElement = document.createElement("img");
    imgElement.src = event.target.result;
    
    imgElement.onload = function (e) {
      const canvas = document.createElement("canvas");
      const MAX_WIDTH = 300;

      const scaleSize = MAX_WIDTH / e.target.width;
      canvas.width = MAX_WIDTH;
      canvas.height = e.target.height * scaleSize;

      const ctx = canvas.getContext("2d");

      ctx.drawImage(e.target, 0, 0, canvas.width, canvas.height);

      const srcEncoded = ctx.canvas.toDataURL(e.target, "image/jpeg");

      // you can send srcEncoded to the server
      sessionStorage.setItem("image",srcEncoded);

      var image = new Image();
      console.log(srcEncoded);
      image.src = srcEncoded;
      document.body.appendChild(image); 
    };
  };
}
const Upbtn = document.getElementById('fileButton');

Upbtn.addEventListener('click',function(e){
  console.log('Upload Button');

  //Get File
  const file = sessionStorage.getItem('image');

  console.log('Grabed');

  //Create Storage reference
  const storageRef = firebase.storage().ref('/pictures/' + file);
  console.log('location');

 //Create Blob

  //Upload file 
  const task = storageRef.put(file);
  console.log('Submitted');
});