相当新的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,"
是否也可以使用FileReader将图像路径读入文件?我只是无法弄清楚究竟应该进入上面示例代码的图像的“file:content”部分 .
任何帮助将不胜感激!
1 回答
上传期待原始图像字节 .
没有试过这个,但最简单的方法可能是使用你可以解析为文件的图像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); });