- ベストアンサー
StrutsのHTMLタグのファイルについて
- Strutsを使用してファイルのアップロード機能において、選択したファイル情報が消える事象が発生する。
- テキストで設定されている項目は、入力チェックに引っかかっても値を再度表示することが可能。
- アップロードファイルのデータをバリデーションで引っかかっても保持し続けることは可能か。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
回答が遅くなり申し訳ございません。 クライアントチェックとはJavascriptを使う入力チェックです。 Javascriptの入力チェックは、未入力チェックや全角・半角チェックなどいろいろあります。 インターネットで調べればすぐにわかると思います。 しかし、ファイルサイズチェックはJavascriptのクライアントチェックで行うことができません。 クライアントチェックが有効なケースとしましては、 type=file以外の入力フィールドでバリデーションエラーがあった場合、 type=fileの値が残っているということです。 ---------------------- <html> <body> <script> function form_check(f) { if (f.aaa.value.length > 5) { alert("text size over!"); return false; } return true; } </script> <form action="aaa.jsp" onSubmit="return form_check(this)"> <input type=text name=aaa><br> <input type=file><br> <input type=submit value="OK"> </form> </body> </html> ---------------------- この場合、type=textでバリデーションエラーがあっても type=fileの値は消えないで残っています。 ちょっと的外れな回答になってしまったでしょうか。。
その他の回答 (1)
- yakko7
- ベストアンサー率100% (2/2)
私もstrutsを使用したファイルアップロード機能を作成したことがあります。 type=fileだと選択したファイルの情報は消えてしまいます。 これは、セキュリティ上ファイルの情報が残らないようにしている。 ・・・とかなんとか先輩に教わった記憶があります。曖昧ですいません。。 ここで行われているバリデーションチェックは、クライアントチェックでしょうか? そうでなければ、クライアントチェックにしてみてはどうでしょう。
お礼
返答ありがとうございます。type=fileだと選択したファイルの情報を保持できるかできないかだけでも判明して、とてもたすかりました。バリデーションチェックはサーバサイドチェックです。クライアントチェックという考え方は具体的にはJavaScriptのチェックでしょうか?何か良い方法がありましたらご面倒ではございますが、ご教授ください。