Android平台实现Phonegap文件上传是本文要介绍的内容,主要是来了解并学习Phonegap文件上传的实例,具体关于Phonegap的内容来看本文详解。
沿用官网提供的完整代码:
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
- <html>
- <head>
- <title>File Transfer Example</title>
- <scripttypescripttype="text/javascript"charset="utf-8"src="phonegap.0.9.4.min.js"></script>
- <scripttypescripttype="text/javascript"charset="utf-8">
- // Wait for PhoneGap to load
- //
- document.addEventListener("deviceready", onDeviceReady,false);
- // PhoneGap is ready
- //
- function onDeviceReady(){
- // Retrieve image file location from specified source
- navigator.camera.getPicture(uploadPhoto,
- function(message){ alert('get picture failed');},
- { quality:50,
- destinationType: navigator.camera.DestinationType.FILE_URI,
- sourceType: navigator.camera.PictureSourceType.PHOTOLIBRARY }
- );
- }
- function uploadPhoto(imageURI){
- var options =newFileUploadOptions();
- options.fileKey="file";
- options.fileName=imageURI.substr(imageURI.lastIndexOf('/')+1);
- options.mimeType="image/jpeg";
- var params =newObject();
- params.value1 ="test";
- params.value2 ="param";
- options.params = params;
- var ft =newFileTransfer();
- ft.upload(imageURI,"http://some.server.com/upload.php", win, fail, options);
- }
- function win(r){
- console.log("Code = "+ r.responseCode);
- console.log("Response = "+ r.response);
- console.log("Sent = "+ r.bytesSent);
- }
- function fail(error){
- alert("An error has occurred: Code = "= error.code);
- }
- </script>
- </head>
- <body>
- <h1>Example</h1>
- <p>Upload File</p>
- </body>
- </html>
其中已经过修改,因为在电脑虚拟机中 sourceType: navigator.camera.PictureSourceType.PHOTOLIBRARY会出错,还没在真机中测试过。
主要问题还是参数imageURI,android平台中imageURI是content://……形式得,不过phonegap已经在1.0.0rc2版本中fix了这个问题。
得到的fileEntry仍然无法使用的,ft.upload()中参数一imageURI,在android平台中的格式是fileEntry.fullPath.
本来想说根目录fileEntry.toURI()应该也行,但是测试证明,只有fileEntry.fullPath才能获得数据并成功上传。
看来phonegap还应该再多改进~
不过整体还是满意的~~参看了一些文档,似乎在iphone下会更麻烦一点~
所以说phonegap也不见得是写一次就可以通用的~~最简单的可能一次代码就可以通用~
但是涉及到一些进阶一点的也是需要再另外做功课的。
小结:Android平台实现Phonegap文件上传的内容介绍完了,希望通过Phonegap文件上传内容的学习能对你有所帮助!