ファイル選択入力フィールド(つまり<input type="file" ... />
)は他の入力フィールドとは異なります。サーバー側から値を事前入力することはできません。できれば、それは巨大なセキュリティホールになるでしょう(考えてみてください<input type="file" value="/etc/passwd" .. />
)。サーバーでは、送信されたフォームを取得するときに、アップロードされたファイルへのフルパスを取得するのではなく、ファイルの名前と内容だけを取得します。
ファイル入力フィールドの値を本当に保持する必要がある場合は、別のルートに進む必要があります。Ajax(これを支援するためのいくつかのテクニックとライブラリについては「ajaxファイルアップロード」のグーグル)を介してフォームを送信し、ファイルが有効かどうかを示すAjax応答。
さらに明確にする:通常のHTML / HTTP postメソッド(Playフォームヘルパーが使用)では、元のページはなくなり、サーバーの応答は前のページに接続されていない新しいページになります。Playフォームヘルパーは、このページの入力フィールドに以前の値を事前入力しますが、上記で説明したように、これはファイル入力フィールドでは不可能です。
これが、ファイルをアップロードするための特別な目的のJavascriptライブラリがある理由です。フォームが主にファイルのアップロードに関係している場合は、これらを確認する必要があります。(例: http: //fineuploader.com)。サーバー側では、Ajaxクエリのターゲットは、アップロードされたファイルを処理し、成功/失敗メッセージを返す新しいアクションになります。このメッセージは、ユーザーに表示されます。