経緯
VisualforceからControllerクラスのメソッドを呼ぶことができるActionFunctionですが、
ActionFuction実行後に画面に戻ると、
InputFileで選択中のファイル名が消えてしまう件について、少し苦戦したので備忘録として記載。
結論
ActionFunction実行時にapex:inputFile上で、ファイル名は消えているがデータとしては入っているのは仕様とのこと。
対応策
- データとしては保持しているので別のラベルなどでファイル名表示させる。
- RemoteActionでは表題の問題が発生しないため、ActionFunctionの代用できる。
RemoteActionはStaticメソッドのため、メンバー変数の値を変更することができない。RemoteActionを使用する場合はVisualforceのvalueで受け取るのではなくJavascriptを使用して値を受け取る必要があるため工夫が必要になる。