从服务器下载文件到Ionic2 App

时间:2017-04-05 14:10:48

标签: android ios cordova angular ionic2

我需要在我的Ionic2应用中实现一项功能,用户可以将特定的视频文件下载到Ionic2应用中。

检查Ionic Native部分后,我发现以下插件可用:

  • 档案
  • 文件选择器
  • 文件打开器
  • 文件路径

但无法找到“cordova-plugin-file-transfer”之类的内容,其中存在特定方法 DOWNLOAD

可能有什么出路?

请建议。

5 个答案:

答案 0 :(得分:5)

您应该使用" 转移"用于在ionic2中下载文件的插件

您可以通过此命令安装插件

ionic plugin add cordova-plugin-file-transfer
npm install --save @ionic-native/transfer

然后导入

import { Transfer, FileUploadOptions, TransferObject } from '@ionic-native/transfer';

设置构造函数

constructor(private transfer: Transfer, private file: File) { }

然后使用此功能使用url

下载文件
download() {
const url = 'http://www.example.com/file.pdf';
fileTransfer.download(url, this.file.dataDirectory + 
'file.pdf').then((entry) => {
console.log('download complete: ' + entry.toURL());
}, (error) => {
// handle error
});
}

希望它对你有所帮助 您也可以使用此插件上传文件

答案 1 :(得分:3)

您可以使用Transfer原生插件。

  

此插件允许您上传和下载文件。

Git Repo.

document.getElementsByClassName('day')

答案 2 :(得分:1)

首先。每个人都在这里使用的transfer插件已被弃用。如果有其他选择,则永远不要使用不推荐使用的插件。

很高兴Ionic为您提供其他选择 Native Http plugin

HTTP服务具有uploadFiledownloadFile方法,可用于处理文件的上传/下载。

downloadFile方法具有4个参数:urlbodyheadersfilepath

在最简单的情况下,此方法的调用将如下所示:

this.nativeHttp.downloadFile(urlWithFile, {}, {}, fileNameToSave)

它返回用FileEntry实例解析的promise,以后您可以使用它从文件系统中读取(如果需要)

fileNameToSave可以从File类中获得。基本上,它可以是this.file.tempDirectory + fileName,也可以从file中选择另一个目录,例如this.file.dataDirectory + fileName

同样,您永远都不要使用不推荐使用的插件/软件包。他们之所以被称为弃用

P.S。如果您想打开下载的文件,可以使用@ionic-native/file-opener插件来完成,如下所示:

this.file.resolveLocalFilesystemUrl(fileEntry.toURL())
         .then((entry: FileEntry) => {  
             entry.file(meta => {
                 this.fileOpener.open(fileEntry.toURL(), meta.type)
             }, error => {});
         })

答案 3 :(得分:0)

应该像下面的

  1. 添加导入

    从'@ ionic-native / transfer'导入{Transfer,TransferObject};

  2. 构造函数

    构造者(私人转让:转让){     }

  3. 创建fileTransfer的实例

    const fileTransfer:TransferObject = this.transfer.create();

  4. 最终代码

    fileTransfer.download(“您的URL”,“您的URLmime tyoe”)。then((entry)=> {

    },(错误)=> {         //处理错误       });

仅此而已。

谢谢

答案 4 :(得分:-1)

您只需使用

下载插件即可
 ionic cordova plugin add cordova-plugin-file-transfer