如何使用AJAX从Phonegap移动应用程序上传图片?

时间:2011-08-01 16:42:08

标签: ajax upload camera cordova

我有Phonegap移动应用程序,我正在使用Camera API使用此代码捕获图片:

navigator.camera.getPicture(function(data){
  $.post('http://www.example.com', {data:data});
}, function(msg){alert(msg);}, { quality: 20 });

这没关系,但是根据所使用的移动设备,需要将质量选项设置为合理的值。有些人可以处理高于70的值,但是即使值为20,低端设备也会遇到麻烦.Ph​​onegap文档提到了这些问题,因为整个图片存储在Base64字符串中所以需要内存。 Phonegap建议改为指定选项destinationType: Camera.DestinationType.FILE_URI

但据我所知,我会得到存储图片的本地文件路径,我必须使用FileReader API将其读入一个变量。然后$.post再次以与我现在正在做的相同的方式。

对我来说,似乎如果我将destinationType从Base64更改为FILE_URI,我将无法获得任何内容,并且在从本地文件读取变量并POST它时仍然会遇到相同的内存问题。

我的想法是对的吗?或者我错过了什么,使用FILE_URI destionationType会有一些优势?或者有更好的方法来上传拍摄的照片吗?

1 个答案:

答案 0 :(得分:4)

好的,所以新的1.0.0 Phonegap文档只回答了这个问题。可以在http://docs.phonegap.com/phonegap_file_file.md.html#FileTransfer

找到它