C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: File Fieldの入力制御


(過去ログ 10 を表示中)

[トピック内 6 記事 (1 - 6 表示)]  << 0 >>

■2256 / inTopicNo.1)  File Fieldの入力制御
  
□投稿者/ pri (11回)-(2007/03/29(Thu) 09:50:46)

分類:[VB.NET (ASP.NET)] 

2007/03/29(Thu) 09:54:39 編集(投稿者)

質問させていただきます。

ASP.NETのFile Fieldを使用しているのですが、
その際に、入力制御をバイト数で行いたいと思っております。

また制御としましては、エラー表示とかではなく、
設定バイト数以後は入力できないというような感じに
したいと思っております。

調べてみたりしたのですが、
情報が少なく、途方にくれています。

お分かりになる方いましたら、
ご教授お願いいたします。

引用返信 編集キー/
■2257 / inTopicNo.2)  Re[1]: File Fieldの入力制御
□投稿者/ ぽぴ王子 (165回)-(2007/03/29(Thu) 10:12:51)
ぽぴ王子 さんの Web サイト
No2256 (pri さん) に返信

> ASP.NETのFile Fieldを使用しているのですが、
> その際に、入力制御をバイト数で行いたいと思っております。

これはファイルの入力制御というわけではなく、ファイル名の入力制御
という意味でいいでしょうか。

> また制御としましては、エラー表示とかではなく、
> 設定バイト数以後は入力できないというような感じに
> したいと思っております。

無理だと思います。
onchange にスクリプトを定義するという手もありますが、手入力された
場合は呼び出されないようです。
onsubmit のタイミングでチェックしてエラー表示がせいぜいだと思います。
ただし、JavaScript を無効にされていたらこれも使えません。

> 調べてみたりしたのですが、
> 情報が少なく、途方にくれています。

これだけでは何を調べたのかわからないので情報が“全くなく”
こちらの方が途方にくれてしまいます。
どんなことを調べて、どの程度わかったのかを書きましょう。
引用返信 編集キー/
■2258 / inTopicNo.3)  Re[2]: File Fieldの入力制御
□投稿者/ pri (12回)-(2007/03/29(Thu) 10:18:04)
No2257 (ぽぴ王子 さん) に返信

> これはファイルの入力制御というわけではなく、ファイル名の入力制御
> という意味でいいでしょうか。

そうです。
ファイル名の入力制御です。

> 無理だと思います。
> onchange にスクリプトを定義するという手もありますが、手入力された
> 場合は呼び出されないようです。
> onsubmit のタイミングでチェックしてエラー表示がせいぜいだと思います。
> ただし、JavaScript を無効にされていたらこれも使えません。

> これだけでは何を調べたのかわからないので情報が“全くなく”
> こちらの方が途方にくれてしまいます。
> どんなことを調べて、どの程度わかったのかを書きましょう。

javascriptでの制御方法
設定文字数(バイト数以上入力不可)
file fieldでの制御方法

などで調べてみたのですが、
参考になりそうなものが出てきませんでした。

引用返信 編集キー/
■2260 / inTopicNo.4)  Re[3]: File Fieldの入力制御
□投稿者/ 中博俊 (1000回)-(2007/03/29(Thu) 10:49:12)
中博俊 さんの Web サイト
ここは無碍にできませんと答える場面です。

ちなみになぜそのようなことをしたいのか理解に苦しみます。
ユーザが選んだファイルがサーバには上がってくるからそれでいいでしょ?

クライアントではフルパス表示が必須ですし、サーバに上がってくるファイル名はIE6まではフルパスだけどIE7からはファイル名だけになるのでそれすらもサーバにとってはどうでもいいことです。

もちろんファイル名の再設定もできませんし、ないないずくしです。
引用返信 編集キー/
■2261 / inTopicNo.5)  Re[3]: File Fieldの入力制御
□投稿者/ ぽぴ王子 (166回)-(2007/03/29(Thu) 10:55:44)
ぽぴ王子 さんの Web サイト
No2258 (pri さん) に返信

> javascriptでの制御方法
> 設定文字数(バイト数以上入力不可)
> file fieldでの制御方法
> 
> などで調べてみたのですが、
> 参考になりそうなものが出てきませんでした。

ふむふむ。ありがとうございます。
小言ばかりではアレなので、私が調べた方法も書いておきますね。

まず、こんな感じのHTMLファイルを作りました(一部抜粋です)。

<form method="post" action="hoge">
  <script type="text/javascript">
  <!--
    function xxFunc()
    {
      document.forms[0].elements["xx"].value = document.forms[0].elements["x"].value;
    }
  //-->
  </script>
  <input type="button" name="xx" id="xx" value="XX!!" />
  <input type="file" name="x" onchange="xxFunc()" />
</form>

file field に適当な文字を入力
→ボタンのラベルは変化なし

file field に[参照...]ボタンを使って適当なファイルを設定
→ボタンのラベルが変更された

ということで、onchange は手入力されたときは呼ばれていないらしいと判断。
実際のところ、file field は普通のテキストボックスとは違う部分が多いので、制御は
難しいと思います。

HTML 4.01 Strict では maxlength プロパティが使えそうな記述は見ましたが、それも
文字単位なので気休め程度ではないかと思われます。

http://jp.selfhtml.org/html/formulare/datei_upload.htm
ここによると、maxlength は HTML4 以降では使えるのかどうかすら怪しそうですね。
[引用]
> maxlength= を省略すると、ユーザーは好きなだけの長さのファイルを送るこ
> とができます。しかしこの記述を使う時は気をつけてください。HTMLのバージ
> ョン3.2ではこの説明のように決められています。ところがバージョン4.0では
> この機能は属性 maxlength では触れられていません。ですからこの記述が必
> ず機能するとは考えない方がいいです。

本格的に調べるには HTML の仕様を確認するしかないかもしれません。

引用返信 編集キー/
■2265 / inTopicNo.6)  Re[4]: File Fieldの入力制御
□投稿者/ pri (13回)-(2007/03/29(Thu) 13:14:35)
いろいろありがとうございます。

結果無理そうな感じが強いみたいですね。。。

とりあえず、
入力文字列のバイト数を調べ
設定バイト数をoverしていたらエラー表示という形にいたしました。

ありがとうございました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -