16401
monacaにて、ローカルファイルを選択してパスを取得する方法がわかりません。  
具体的には、端末にある音声ファイルを選択し、アプリに登録したいと考えています。

画像に関してはCameraプラグインという便利なものがありますが、  
画像以外のファイルについては、同様のことをどのように実現すればよいでしょうか？

よろしくお願いします。
CC BY-SA 3.0
2015-08-26T09:18:21.910
14865
2015-09-08T23:37:02.963
8013
question
monaca cordova
monacaでファイル選択ダイアログを表示する方法
検証していませんが，こちらが参考になるかもしれません．  
<http://ramkulkarni.com/blog/file-chooser-dialog-for-phonegap-application/>
CC BY-SA 3.0
2015-09-06T12:54:02.977
16314
2015-09-06T12:54:02.977
11025
14865
answer
別の方法です．

`<input type="file">`
を含むページを作れば，そこからファイル選択ダイアログが出せます．そこで選んだファイルを，このinput要素から何らかの方法で取得してやればよいはずです．

AngularJS なら，ngModel と類似した機能を持つ fileModel
という以下のようなディレクティブを定義すれば，適当な変数にバインドできます．

```

    app.directive('fileModel',function($parse){
        return{
            restrict: 'A',
            link: function(scope,element,attrs){
                var model = $parse(attrs.fileModel);
                element.bind('change',function(){
                    scope.$apply(function(){
                        model.assign(scope,element[0].files[0]);
                    });
                });
            }
        };
    });
    
```

（<http://qiita.com/zaburo/items/f03433caa710902d599f> から引用）

HTML側では，

```

    <input type="file" file-model="src">
    
```

のようにすれば，`src`にfileオブジェクトがバインドされます．
CC BY-SA 3.0
2015-09-08T23:37:02.963
16401
2015-09-08T23:37:02.963
11025
14865
answer