上传到 Google 驱动器 - 如何使用 base64 编码的图像或图像路径

Uploading to Google Drive - how to use a base64-encoded image or an image path

对 Javascript 相当陌生,在尝试了很多东西后仍然 运行 遇到这个问题:

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

接下来我将使用它上传文件到 google 驱动器: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();

但是当我上传图片时,它无法查看,我认为是因为我对它进行了错误的编码。

这是我到目前为止尝试过的方法:

是否也可以使用 FileReader 将图像路径读取到文件中?对于上述示例代码,我无法弄清楚图像的 "file: content" 部分究竟应该包含什么。

如有任何帮助,我们将不胜感激!

上传需要原始图像字节。

还没有尝试过,但最简单的方法可能是使用图像 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); });