javascript – Cordova android输入文件:无法访问设备上的某些目录

我的应用程序基于Cordova,允许用户将图像和PDF文件上传到服务器.

我正在使用一个简单的< input type =“file”>使用Dropzone.js插件进行布局和传输.它适用于iOS和
Android.单击文件管理器启动的按钮后,您可以选择文件并上传.

问题是,在Android上,用户无法从文件选择器上部的目录中选择文件.我有一个LG G4,所以我不能选择上一个文件,谷歌硬盘,图像,下载,内存.我可以选择图库,照片和文件管理器没有任何问题,但不能在线上方的任何目录.

我有权读取外部存储空间.我在这里错过了什么?

这是测试人员的屏幕:
《javascript – Cordova android输入文件:无法访问设备上的某些目录》

Dropzone html,它的基本功能. Dropzone不会在这里添加输入类型=文件,但是,就像jQuery一样,它会在选择文件时动态执行.

<form action="file-upload" class="dropzone dropzone-form dz-clickable" rem="dropform" id="dropzone-form">
            <input type="hidden" name="userId" value.bind="user_id" class="au-target" au-target-id="164">
            <div class="text-center add_btn_wrapper">
                <a class="btn btn-default btn-md dz-clickable" rem="dropbutton">Select file</a>
            </div>
            <div class="dz-default dz-message">
                <span>Upload your scans</span>
            </div>
    </form>

Dropzone js声明(我使用Aurelia.js(es5 / 6)作为前端框架):

this.zone = new Dropzone(
    _this.element.querySelector("[rem='dropform']"), { 
        url: this.auth.config.baseUrl + "../_uploader/file/upload",
        maxFiles: this.max_files,
        acceptedFiles: this.accepted_files,
        clickable: [_this.element.querySelector("[rem='dropbutton']"), _this.element.querySelector("[rem='dropform']")],
        dictDefaultMessage: this.label,
        addRemoveLinks: this.allow_remove,
        removedfile: (file) => { .... },
        init: function() {
            this.on("addedfile", (fx) => { .... });
            this.on("complete", (fx) => { .... });
        }
    });

在AndroidManifest.xml中:

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.MANAGE_DOCUMENTS"/>

最佳答案 好的,问题是由acceptedFiles参数引起的.对于桌面我有“image / *,.pdf”并且它有效,但具有此值的cordova感到困惑并限制了我的访问权限.对于移动设备我现在只使用“image / *”,它可以正常工作.

点赞