上传到 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();
但是当我上传图片时,它无法查看,我认为是因为我对它进行了错误的编码。
这是我到目前为止尝试过的方法:
- 直接使用base64编码的图像数据
- 创建一个 image/jpeg 类型的 blob 并将 64 位编码的图像数据放入其中
- 在图像数据前面附加"data:image/jpeg;base64,"
- 此人的建议:
是否也可以使用 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);
});
对 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();
但是当我上传图片时,它无法查看,我认为是因为我对它进行了错误的编码。
这是我到目前为止尝试过的方法:
- 直接使用base64编码的图像数据
- 创建一个 image/jpeg 类型的 blob 并将 64 位编码的图像数据放入其中
- 在图像数据前面附加"data:image/jpeg;base64,"
- 此人的建议:
是否也可以使用 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);
});