これが私のHTMLフォームです。
<form name="myForm" ng-submit="">
<input ng-model='file' type="file"/>
<input type="submit" value='Submit'/>
</form>
ローカルマシンから画像をアップロードして、アップロードされたファイルの内容を読みたいです。これらはすべてAngularJSを使って行いたいと思っています。
しかし、$scope.file
の値を表示しようとすると、undefined と表示されます。
ここでの回答の中には、FormData()
の使用を提案しているものもありますが、残念ながらこれはInternet Explorer 9以下では使用できないブラウザオブジェクトです。これらの古いブラウザをサポートする必要がある場合は、<iframe>
やFlashを使用するなどのバックアップ戦略が必要となります。
ファイルのアップロードを行うためのAngular.jsモジュールはすでにたくさんあります。 この2つは古いブラウザへの対応が明示されています。
他にもいくつかのオプションがあります。
これらの中には、あなたのプロジェクトに合うものがあるはずです。また、自分でコーディングする方法のヒントになるものもあるでしょう。
以下は、ファイルアップロードの例です。
この中には
setFiles
コントローラのファイル配列を更新するFrom View
または
AngularJSを使ったjQuery File Uploadを確認することができます。