如何在上传文件时添加进度条

时间:2017-03-14 10:55:17

标签: angular ionic2

我正在将文件传输到网址,我可以成功完成但我不知道如何获取已上传文件的进度,我需要在某些数字上取得进展

 fileTransfer.upload(file_path, api_endpoint, options, data)
                                .then((data) => {
                                    // success 
                                     console.log("success", JSON.parse(data['response']));

                                    this.upload_success();

                                }, (err) => {
                                    // error 
                                    this.failed_upload();
                                    console.log('File failed uploaded.', err);
                                })

我在ionic2文档中发现onProgress(Listener)check我不知道如何使用可能有人给我一些例子

更新 完成文档https://github.com/apache/cordova-plugin-file-transfer#example-with-upload-headers-and-progress-events-android-and-ios-only

fileTransfer.onProgress = function(progressEvent) {
    if (progressEvent) {
        console.log("progress success =====")
    } else {
        console.log("progress error =====")
    }
};     

如果我运行我无法看到任何这些控制台我在文件传输代码下面添加了这个新代码。可能有人帮助我

1 个答案:

答案 0 :(得分:2)

您可以使用像这样的onProgress函数显示progressBar

public   fileTransfer: TransferObject = this.transfer.create();
public upload(path,folder) 
{
  url="http://www.axmag.com/download/pdfurl-guide.pdf";
  var trustHosts = true;
  this.presentLoading("Loading");
  //**Progress Bar**
  this.fileTransfer.onProgress((e)=>
  {
    let prg=(e.lengthComputable) ?  Math.round(e.loaded / e.total * 100) : -1;  
    console.log("progress:"+prg);
  });

  this.fileTransfer.upload(file_path, api_endpoint, options, data).then((entry) => {
//handle success        
console.log('upload complete: ' );
  },
  (error) => {
    this.loader.dismiss();
    alert('uploading faild: ');
    console.log(error);
  //handle error
  });
}

现在您可以调用upload()函数来上传文件