Filepicker.io - base64解码图像无法查看

时间:2013-02-01 16:41:45

标签: javascript filepicker.io

我使用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+"%");
      }
    );
  }

1 个答案:

答案 0 :(得分:1)

当您使用toDataURL电话时,请包含前缀,例如

data:image/png;base64

在进行base64解码之前,需要将其从图像的实际内容中剥离