Android平臺實現(xiàn)Phonegap文件上傳
Android平臺實現(xiàn)Phonegap文件上傳是本文要介紹的內(nèi)容,主要是來了解并學(xué)習(xí)Phonegap文件上傳的實例,具體關(guān)于Phonegap的內(nèi)容來看本文詳解。
沿用官網(wǎng)提供的完整代碼:
- <!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>
其中已經(jīng)過修改,因為在電腦虛擬機(jī)中 sourceType: navigator.camera.PictureSourceType.PHOTOLIBRARY會出錯,還沒在真機(jī)中測試過。
主要問題還是參數(shù)imageURI,android平臺中imageURI是content://……形式得,不過phonegap已經(jīng)在1.0.0rc2版本中fix了這個問題。
得到的fileEntry仍然無法使用的,ft.upload()中參數(shù)一imageURI,在android平臺中的格式是fileEntry.fullPath.
本來想說根目錄fileEntry.toURI()應(yīng)該也行,但是測試證明,只有fileEntry.fullPath才能獲得數(shù)據(jù)并成功上傳。
看來phonegap還應(yīng)該再多改進(jìn)~
不過整體還是滿意的~~參看了一些文檔,似乎在iphone下會更麻煩一點(diǎn)~
所以說phonegap也不見得是寫一次就可以通用的~~最簡單的可能一次代碼就可以通用~
但是涉及到一些進(jìn)階一點(diǎn)的也是需要再另外做功課的。
小結(jié):Android平臺實現(xiàn)Phonegap文件上傳的內(nèi)容介紹完了,希望通過Phonegap文件上傳內(nèi)容的學(xué)習(xí)能對你有所幫助!