File Chooser for Cordova/Phonegap based on filechooser from cdibened & crypho & wrrzag88.

Usage no npm install needed!

<script type="module">
  import cordovaPluginFileChooser from '';


FileChooser Cordova plugin for Android (mainly KitKat)

This project was forked from, that was forked fromCrypho/filechooser, that was originally forked from cdibened/filechooser, so... thank you both for your work.

This plugin was created as a workaround for and This plugin is mainly configured for Android 4.4 so I would recommend to continue to use the native file dialogs for earlier versions of Android. There might be issues with the plugin as I have not fully tested all possible scenarios on many devices, but I have installed it on a Nexus 5 and it worked fine.

The core pieces of the code were taken from A huge thanks to him!!! All I did was write the plugin wrapper around it. Please take note of the second part of the Setup step from the aforementioned aFileChooser.

    Note that like a ContentProvider, the DocumentProvider authority must be unique.
    You should change com.ianhanniballake.localstorage.documents in your Manifest, as
    well as the LocalStorageProvider.AUTHORITY field.


cordova plugin add


    var success = function(data) {
        // do something

    var error = function(msg) {
        //do something
    };{"mime": "application/pdf"}, success, error);


    var success = function( data ) {
        var filepath = data.url;
        function win(r) {
            console.log("Code = " + r.responseCode);
            console.log("Response = " + r.response);
            console.log("Sent = " + r.bytesSent);

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

        var uri = encodeURI("http://localhost/upload/processupload.php");
        var options = new FileUploadOptions();

        var ft = new FileTransfer();
        ft.onprogress = function(progressEvent) {
            if (progressEvent.lengthComputable) {
                loadingStatus.setPercentage(progressEvent.loaded /;
            else {

        ft.upload(filepath, uri, win, fail, options);  

    var error = function( msg ) {
        console.log( msg );

    <input type="file" id="fileinput" name="fileinput"/>
    if( device.platform.toLowerCase() === 'android' && device.version.indexOf( '4.4' ) === 0 ) {
        $('#fileinput').click( function(e) {
   {}, success, error );