Cordova 文件傳輸

2018-12-28 15:10 更新

此插件用于上傳和下載文件。

步驟1 - 安裝文件傳輸插件

我們需要打開命令提示符并運行以下命令來安裝插件。

C:\Users\username\Desktop\CordovaProject>cordova plugin add cordova-plugin-file-transfer

步驟2 - 創(chuàng)建按鈕

在本章中,我們將向您展示如何上傳和下載文件。 讓我們在 index.html 中創(chuàng)建兩個按鈕。

<button id = "uploadFile">UPLOAD</button>
<button id = "downloadFile">DOWNLOAD</button>

步驟3 - 添加事件監(jiān)聽器

事件監(jiān)聽器將在onDeviceReady函數(shù)的index.js中創(chuàng)建。我們正在添加點擊事件和回調(diào)函數(shù)。

document.getElementById("uploadFile").addEventListener("click", uploadFile);
document.getElementById("downloadFile").addEventListener("click", downloadFile);

步驟4A - 下載功能

此功能將用于從服務器下載文件到設備。 我們已將檔案上傳到 postimage.org ,讓操作更簡單。你可能想使用自己的服務器。該函數(shù)放置在 index.js 中,并在按下相應的按鈕時觸發(fā)。uri 是服務器下載鏈接, fileURI 是我們設備上DCIM文件夾的路徑。

function downloadFile() {

   var fileTransfer = new FileTransfer();
   var uri = encodeURI("http://s14.postimg.org/i8qvaxyup/bitcoin1.jpg");
   var fileURL =  "///storage/emulated/0/DCIM/myFile";

   fileTransfer.download(
      uri, fileURL, function(entry) {
         console.log("download complete: " + entry.toURL());
      },
		
      function(error) {
         console.log("download error source " + error.source);
         console.log("download error target " + error.target);
         console.log("download error code" + error.code);
      },
		
      false, {
         headers: {
            "Authorization": "Basic dGVzdHVzZXJuYW1lOnRlc3RwYXNzd29yZA=="
         }
      }
   );
}

一旦按下下載按鈕,該文件將從 postimg.org 服務器下載到我們的移動設備。 我們可以檢查指定的文件夾,看看 myFile 是否存在。

Cordova File Transfer Download

控制臺輸出看起來像這樣 -

Cordova File Transfer Download Log

步驟4B - 上傳功能

現(xiàn)在讓我們創(chuàng)建將文件并將其上傳到服務器的函數(shù)。 再次,我們希望盡可能簡化這一過程,因此我們將使用 posttestserver.com 在線服務器進行測試。uri 值將會鏈接到發(fā)布到 posttestserver 。

function uploadFile() {
   var fileURL = "///storage/emulated/0/DCIM/myFile"
   var uri = encodeURI("http://posttestserver.com/post.php");
   var options = new FileUploadOptions();
	
   options.fileKey = "file";
   options.fileName = fileURL.substr(fileURL.lastIndexOf('/')+1);
   options.mimeType = "text/plain";

   var headers = {'headerParam':'headerValue'};
   options.headers = headers;

   var ft = new FileTransfer();

   ft.upload(fileURL, uri, onSuccess, onError, options);

   function onSuccess(r) {
      console.log("Code = " + r.responseCode);
      console.log("Response = " + r.response);
      console.log("Sent = " + r.bytesSent);
   }

   function onError(error) {
      alert("An error has occurred: Code = " + error.code);
      console.log("upload error source " + error.source);
      console.log("upload error target " + error.target);
   }
	
}

現(xiàn)在我們可以按上傳按鈕來觸發(fā)此功能。我們將獲得控制臺輸出,確認上傳是成功的。

Cordova File Transfer Upload Log

現(xiàn)在我們可以按上傳按鈕來觸發(fā)此功能。我們將獲得控制臺輸出,確認上傳是成功的。...

Cordova File Transfer Upload Server Response
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號