2016-05-11 12 views
4

CordovaベースのMyアプリでは、画像とPDFファイルをサーバにアップロードできます。 レイアウトと転送用のDropzone.jsプラグインには、単純な<input type="file">が使用されています。 iOSとAndroidの両方でうまく動作します。ファイルマネージャが起動するボタンをクリックすると、ファイルを選択してアップロードできます。Cordovaアンドロイド入力ファイル:デバイスの一部のディレクトリにアクセスできない

Androidでは、ファイルセレクタの上部にあるディレクトリからファイルを選択できないという問題があります。私はLG G4を持っているので、ラストファイル、Googleドライブ、画像、ダウンロード済み、内部メモリから選択することはできません。ギャラリー、写真、ファイルマネージャから問題なく選択できますが、その上にディレクトリはありません。

私は外部ストレージを読み取る権限を持っています。私はここで何が欠けていますか? Screen form the tester

ドロップゾーンのHTML、それはにつれてそのような基本的な:

ここでは、テスターからの画面です。 Dropzoneはここでinput type = fileを追加しませんが、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> 

ドロップゾーンJS宣言(Iフロントエンドフレームワークとして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"/> 
+1

コードスニペットを投稿できますか? – Gandhi

+0

コードスニペットが追加されました。 – McOffsky

+0

そしてこのコードのおかげで私はすでに間違ったもの( 'acceptedFiles'パラメータ)を見つけました。私は私の事件に関するすべての情報を持っているときにanwserを投稿します。ありがとう! – McOffsky

答えて

1

[OK]を、この問題はacceptedFilesパラメータによって発生しています。デスクトップの場合、私はそこに"image/*,.pdf"を持っていましたが、それはうまくいきましたが、この値を持つコードバスは混乱し、アクセスが制限されていました。モバイルの場合、今はちょうど"image/*"を使用しています。

関連する問題