首页 文章

上传到Google Cloud 端硬盘 - 如何使用base64编码的图像或图像路径

提问于
浏览
0

相当新的Javascript,并在尝试了很多事情后仍然遇到这个问题:

我正在使用http://ngcordova.com/docs/plugins/camera/来捕获手机上的图像,并可以检索为base64编码的图像或图像位置的路径(文件://storage/emulated/...jpg) .

接下来我用它将文件上传到谷歌驱动器:https://github.com/googledrive/cors-upload-sample

我已成功上传了一个给定示例的文本文件:

* @example
 * var content = new Blob(["Hello world"], {"type": "text/plain"});
 * var uploader = new MediaUploader({
 *   file: content,
 *   token: accessToken,
 *   onComplete: function(data) { ... }
 *   onError: function(data) { ... }
 * });
 * uploader.upload();

但是当我上传图像时,它无法查看,我认为这是因为我编码错了 .

这是我到目前为止所尝试的:

  • 直接使用base64编码的imagedata

  • 创建一个图像/ jpeg类型的blob并将64encoded图像数据放入其中

  • 在imagedata前添加"data:image/jpeg;base64,"

  • 此人的建议:https://stackoverflow.com/a/27197907/5568940

是否也可以使用FileReader将图像路径读入文件?我只是无法弄清楚究竟应该进入上面示例代码的图像的“file:content”部分 .

任何帮助将不胜感激!

1 回答

  • 0

    上传期待原始图像字节 .

    没有试过这个,但最简单的方法可能是使用你可以解析为文件的图像URL(这也是一个blob :)

    就像是:

    window.resolveLocalFileSystemURL(uri, function(fileEntry) { var errorHandler = ...; fileEntry.file(function(file) { var uploader = new MediaUploader({ file: file, token: accessToken, onComplete: function(data) { ... } onError: function(data) { ... } }); uploader.upload(); }, errorHandler); });

相关问题