【问题标题】:get selected file size, from chooser plugin Cordova/Ionic从选择器插件 Cordova/Ionic 获取选定的文件大小
【发布时间】:2021-01-18 17:58:41
【问题描述】:

我正在尝试使用 Cordova/Ionic5 中的 Chooser 插件选择一个文件。

我可以获取文件和 dataURI,但是如何获取选定的文件大小。

请帮忙。

【问题讨论】:

  • 是ios还是android
  • 两者。格式,我得到了。 Filr uri,而不是大小
  • 我在下面添加了我的评论。我已经在android上测试过这个我没有ios设备所以你可以在ios上测试它会为你工作如果有任何问题请告诉我

标签: angular cordova ionic-framework


【解决方案1】:

文件选择器插件用于文件选择。它不会为您提供文件信息,如大小 mimetype 等。您需要一些其他插件,如 filefilepath 从文件中获取此信息。我在下面提到了这些链接,并添加了我的示例代码,您如何通过这些插件获取此信息,请检查。

构造函数

import { FileChooser } from '@ionic-native/file-chooser/ngx';
import { FilePath } from '@ionic-native/file-path/ngx';
import { File } from '@ionic-native/file/ngx';

constructor(
        private fileChooser: FileChooser,
        private filepath : FilePath,
        private file : File,
        private plt : Platform
    
    ) { }

文件选择功能

async selectFile(){
    
    if(this.plt.is('android')){
const selectedFile : string = await this.fileChooser.open();
        const resolvedPath = await this.filepath.resolveNativePath(selectedFile);
        const fileEntry = await this.file.resolveLocalFilesystemUrl(resolvedPath) as any;
        fileEntry.file((fileInfo)=>{
            console.log('File Info ', fileInfo);
            //sample response file mime type size etc you can use it as per your requirement
            // end: 3028
            // lastModified: 1610953273000
            // lastModifiedDate: 1610953273000
            // localURL: "cdvfile://localhost/sdcard/Download/sample.pdf"
            // name: "sample.pdf"
            // size: 3028
            // start: 0
            // type: "application/pdf"
        })
    }else{
        //For ios device 
        const selectedFile : string = await  this.filePicker.pickFile() ;
        const fileEntry = await this.file.resolveLocalFilesystemUrl('file:///'+selectedFile) as any;
        fileEntry.file((fileInfo)=>{
             console.log('File Info ', fileInfo);
        })
    }
}

https://ionicframework.com/docs/native/file

https://ionicframework.com/docs/native/file-path

【讨论】:

  • 对于 android 工作正常,在 IOS 中,它正在崩溃 ionic-app
  • 哦,我的错.. 抱歉,只是让您知道filechooser 仅适用于 android
  • 你需要为 ios 使用filepicker 插件 .. 所以我猜你可以在 android 上使用当前的函数,在 ios 上你可以创建一个新函数
  • 我已经安装了带有 ionic-native 等的 iosFilePicker,但应用程序仍然在你的代码上崩溃。基本上 fileEntry.file() 正在使应用程序崩溃。 selectedFile 变量在控制台中是这样的:/Users/mymac/Library/Developer/CoreSimulator/Devices/F8F5EFB6-A10F-473E-9E73-DAE02F757CE3/data/Containers/Data/Application/61DECCBE-1EB0-43F1-A1D9-A6BE6CE08FD4/tmp /io.ionic.starter-Inbox/1610957484717.pdf
  • github.com/jcesarmobile/FilePicker-Phonegap-iOS-Plugin 请检查此链接..您需要更新您的苹果帐户中的一些配置才能使用此插件..这只是因为 icloud 访问..请阅读此文档
猜你喜欢
  • 2014-11-09
  • 2012-05-18
  • 1970-01-01
  • 1970-01-01
  • 2018-04-07
  • 1970-01-01
  • 1970-01-01
  • 2013-10-05
  • 2019-12-11
相关资源
最近更新 更多