プロが教えるわが家の防犯対策術!

Strutsを使用してファイルのアップロード機能を考えています。
(1)ウェブブラウザ上でアップしたいファイルを選択
(2)バリデーションで入力チェックを行う
(3)バリデーションで入力チェックに引っかかる
(4)(1)で選択したファイル情報が消える

という事象が発生します。
textで設定されている項目については、(3)でひっかかっても値を再度webブラウザ上に表示することが可能です。アップロードファイルのデータをバリデーションで引っかかっても保持し続けるということは可能でしょうか?どなたかご存知のかたがいらっしゃいましたら、ご教授ください。よろしくお願いします。

言語:JAVA
OS:Win XP

A 回答 (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の値は消えないで残っています。

ちょっと的外れな回答になってしまったでしょうか。。

参考URL:http://takeoba.cool.ne.jp/moreJava/
    • good
    • 0

私もstrutsを使用したファイルアップロード機能を作成したことがあります。


type=fileだと選択したファイルの情報は消えてしまいます。
これは、セキュリティ上ファイルの情報が残らないようにしている。
・・・とかなんとか先輩に教わった記憶があります。曖昧ですいません。。
ここで行われているバリデーションチェックは、クライアントチェックでしょうか?
そうでなければ、クライアントチェックにしてみてはどうでしょう。
    • good
    • 0
この回答へのお礼

返答ありがとうございます。type=fileだと選択したファイルの情報を保持できるかできないかだけでも判明して、とてもたすかりました。バリデーションチェックはサーバサイドチェックです。クライアントチェックという考え方は具体的にはJavaScriptのチェックでしょうか?何か良い方法がありましたらご面倒ではございますが、ご教授ください。

お礼日時:2005/08/11 11:14

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!