【问题标题】:Filepicker.io - base64 decoded image not viewableFilepicker.io - base64 解码图像不可见
【发布时间】:2023-03-24 21:26:01
【问题描述】:

我正在使用 filepicker.io 将现有文件 (FPFile) 导出到给定目标。 我将现有的 FPFile 用作一种小型临时文件,因此导出很快。然后,在导出完成后,我正在尝试用一些图像数据(base64 编码)写回我刚刚导出的文件。 问题是,在我写入数据后,图像不可见。图像不会在 Firefox、Chrome 或 IE 中显示。 我实际上可以在 Photoshop 中打开图像,它显示得很好,所以我知道正在写入数据。写入文件后,文件中似乎存在某种错误。也许我只是在做一些愚蠢的事情。 这是我的代码:

var fpfile = { url: 'https://www.filepicker.io/api/file/ermKMZgVSu2GCEouu4Lo',
  filename: this.curFile.name, mimetype: 'image/jpeg', isWriteable: true};

  filepicker.exportFile(
    fpfile,
    function(FPFile){
        var data = canvas.toDataURL('image/jpeg');
        writeData(FPFile, data);
    }
  );

  function writeData(file, data){
    filepicker.write(file, data,
      {
        base64decode: true
      },
      function(FPFile){
        console.log("Write successful:", FPFile.filename);
      },
      function(FPError) {
        console.log(FPError.toString());
      },
      function(progress) {
        console.log("Loading: "+progress+"%");
      }
    );
  }

【问题讨论】:

    标签: javascript filepicker.io


    【解决方案1】:

    当您使用toDataURL 调用时,您包括前缀,例如

    data:image/png;base64
    

    这需要在进行base64解码之前从图像的实际内容中剥离出来

    【讨论】:

    • 也许你可以默认检查data:image/png;base64data:image/jpeg;base64?我只是花了一些时间尝试调试这个 :)
    猜你喜欢
    • 2012-06-21
    • 1970-01-01
    • 1970-01-01
    • 2013-10-25
    • 1970-01-01
    • 2020-07-23
    • 2011-12-27
    • 1970-01-01
    相关资源
    最近更新 更多