ionic cordova 之File插件实现文件下载

本文介绍如何在Ionic项目中利用File插件下载文件至设备本地。通过示例代码展示如何调用webapi获取文件的base64编码,然后将其转换为数组缓冲区并写入设备文件系统。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、项目中引入File插件,File插件使用参见https://ionicframework.com/docs/native/file

2、File下载文件实现代码示例

import { Injectable } from '@angular/core';
import { File } from '@ionic-native/file/ngx';

@Injectable({
    providedIn: 'root'
})
export class FilesDownloadService {
  constructor(
        private file: File
    ) { }
     /*
      下载文件
      fileid:附件id 
      filename:文件名称
    */
    fileDownload(fileid: string,filename:string) {
        const filedir = this.file.dataDirectory;//下载到手机内的文件路径
        //调用webapi接口,下载文件,返回base64
        this.attachfileService.downloadFile(fileid).subscribe(res => {
            if (res.code == 200) {
                const arrayBuffer = this.base64ToArrayBuffer(res.dataResult);
                const blob = new Blob([arrayBuffer]);
                this.file.createFile(filedir, filename, true).then(() => {
                    this.file.writeExistingFile(filedir, filename, blob).then(() => {
                        console.log("write file success");
                    }, err => {
                        console.log("write file error:" + JSON.stringify(err));
                    });
                }, error => {
                    console.log("create file error:" + JSON.stringify(error));
                });
            }
        }, e => {
            console.log("download file error:" + JSON.stringify(e));
        });
    }
    /*Base64到数组缓冲区 */
    base64ToArrayBuffer(base64: string) {
        const binaryString = window.atob(base64); //如果不使用base64,则注释这个
        const bytes = new Uint8Array(binaryString.length);
        return bytes.map((byte, i) => binaryString.charCodeAt(i));
    }
}

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值