在Android平台中实现Phonegap文件上传是本文要介绍的内容,主要是来了解并学习Phonegap的应用,那么本文通过一个简单的实例来讲解Phonegap的应用,具体内容的实现来看本文详解。
沿用官网提供的完整代码:
- //WaitforPhoneGaptoload
- //
- document.addEventListener("deviceready",onDeviceReady,false);
- //PhoneGapisready
- //
- functiononDeviceReady(){
- //Retrieveimagefilelocationfromspecifiedsource
- navigator.camera.getPicture(uploadPhoto,
- function(message){alert('getpicturefailed');},
- {quality:50,
- destinationType:navigator.camera.DestinationType.FILE_URI,
- sourceType:navigator.camera.PictureSourceType.PHOTOLIBRARY}
- );
- }
- functionuploadPhoto(imageURI){
- varoptions=newFileUploadOptions();
- options.fileKey="file";
- options.fileName=imageURI.substr(imageURI.lastIndexOf('/')+1);
- options.mimeType="image/jpeg";
- varparams=newObject();
- params.value1="test";
- params.value2="param";
- options.params=params;
- varft=newFileTransfer();
- ft.upload(imageURI,"http://some.server.com/upload.php",win,fail,options);
- }
- functionwin(r){
- console.log("Code="+r.responseCode);
- console.log("Response="+r.response);
- console.log("Sent="+r.bytesSent);
- }
- functionfail(error){
- alert("Anerrorhasoccurred:Code="=error.code);
- }
Example
UploadFile
其中已经过修改,因为在电脑虚拟机中sourceType:navigator.camera.PictureSourceType.PHOTOLIBRARY会出错,还没在真机中测试过。
主要问题还是参数imageURI,andriod中imageURI是content://……形式得,不过phonegap已经在1.0.0rc2版本中fix了这个问题。
得到的fileEntry仍然无法使用的,ft.upload()中参数一imageURI,在android平台中的格式是fileEntry.fullPath.
本来想说根目录fileEntry.toURI()应该也行,但是测试证明,只有fileEntry.fullPath才能获得数据并成功上传。
看来phonegap还应该再多改进~
不过整体还是满意的~~参看了一些文档,似乎在iphone下会更麻烦一点~
所以说phonegap也不见得是写一次就可以通用的~~最简单的可能一次代码就可以通用~
但是涉及到一些进阶一点的也是需要再另外做功课的。
大家有空多逛逛phonegap.cn一起讨论下~
小结:在Android平台中实现Phonegap文件上传内容介绍完了,希望通过本文的学习能对你有所帮助!