ファイルのサイズチェック方法について

このQ&Aのポイント
  • JavaScriptを使用してファイルのサイズチェックはできません。
  • CGI(perl)で作成したメールフォームでは、サーバー側でのファイルのサイズチェックが遅くなる問題があります。
  • ファイルのサイズチェックを効率的に行う方法について調査しています。
回答を見る
  • ベストアンサー

ファイルのサイズチェックってできないのですが?

メールフォームを作成しているのですが、添付するファイルのサイズチェックで行き詰まってしまいました。 JavaScriptでファイルのサイズチェックはできないのでしょうか? CGI(perl)でファイルの添付を可能としたメールフォームを作成したのですが、サーバー(prel)側でのサイズチェックはでき動作はするのですが、10MB/100MBの重いファイルの場合、一度サーバー側へデータが送られてからしかサイズチェックが動作しない為、非常に長い時間、ブラウザが固まったような状態がつづきます。それを解消したいのです。 JavaScriptでファイルのサイズチェックを行えればとおもったのですが可能なのでしょうか?

  • Java
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • mrumesuke
  • ベストアンサー率45% (254/557)
回答No.1

まず、カテゴリが違ってます。JavaScriptの話題はJavaカテゴリでなく、JavaScriptカテゴリに投稿すべきです(さもないとカテゴリ違いで削除されてしまうこともあります)。 さて、JavaScriptでファイルサイズを取得と言うことですが、原則としてはできません。 ではどのような場合に可能かと言うと、クライアントがWSHが使える環境、つまりWindows+IEであることが条件です。ただしIEの設定によっては、注意を促すダイアログが表示され、スクリプトの実行許可をユーザに求めます。しかも、NortonInternetSecurity(NIS)がインストールされている環境下では、さらにNISが警告を発します。 ですので、イントラネットなどプラットフォームが限定されているような環境以外での使用はまったくお勧めできません。 ご注意ください。 (例) --------------------------------------------- <!-- maxSize=500*1024; function CheckFileSize(filespec) { var fso, size; fso = new ActiveXObject("Scripting.FileSystemObject"); size = fso.GetFile(filespec).size; if (size > maxSize) { alert("ファイルサイズは"+size+"バイトです。\n"+maxSize+"バイトを超えているので送信できません。"); return false; } else { alert("ファイルサイズは"+size+"バイトです。\n送信できます。"); return true; } } //--> (snip) <form id="fileform" action="#"> <input type="file" name="filename" size=50><br> <input type="submit" onClick="return CheckFileSize(document.getElementById('fileform').filename.value.replace(/\\/g, '\\\\'));" value="submit"> <input type="reset" value="reset"> </form> ---------------------------------------------

参考URL:
http://www.microsoft.com/japan/msdn/library/ja/script56/html/jsprosize.asp
kanntomi
質問者

お礼

遅くなりましたが、回答ありがとうございます。 (投稿するカテゴリの間違いにまったく気づきませんでした。今後、気おつけます。) インターネット上のホームページで使用したかったのですが原則的にできないのですね。 イントラネットでは、出来そうなので、そちらで使用してみようと思います。 ありがとうございました。

関連するQ&A

  • フォーム入力チェックはCGI(サーバ)で行う必要がありますか?

    漠然と思ったのですが、HTMLの入力フォーム値のチェックをCGIでは行わずに、Javascriptのみで済ませる方法はないでしょうか? Javascirptだけでチェックできればサーバ側の言語が、Perl、PHP、JSPのどれであっても同じ入力チェックを使えるので楽だなぁと思いました。 ただ、JavascriptをOFFにして直接URLに値を埋め込んだ場合、入力チェックを素通りしてしまいます。 Javascriptの有無をサーバ側で判定は不可能?な為、やはりサーバ側で入力チェックを行うしかないでしょうか? よろしくお願いします。

    • 締切済み
    • CGI
  • CGIを使わない添付ファイルつきメールフォームについて

    添付ファイルつきメールフォームのことで困っています。 ホームページスペースはFC2<http://web.fc2.com/>です。しかし、ここはcgiが利用不可です。 無料のレンタルフォームも探しましたが、500KBまでなどサイズが小さく(画像を送信してもらい為、5MBは必要です。)残念ながら利用できません。 cgiを使わずに、添付ファイルつきのメールフォームを作成するにはどんな方法がありますか?? ※家族向けのホームページで、メンバーの家族の画像をメールフォームを使って送ってもらいたいと思っています。

  • 添付ファイル Perl メール

    いつもお世話になっております。 タイトルについて教えてください。 ホームページにてお問い合わせフォームを作成しましたが 画像(添付ファイル)も送れるようにしたいのですが、どのようにすればいいのでしょうか? HTMLの方は下記で十分なのでしょうか? <input type="file" name="添付ファイル"><br> そこからPerlでのコードはCGI.pmのみでいけるのでしょうか? 例えば、 添付ファイルといってもあまり容量が大きすぎると、サーバー側に負担がかかってしまうため ??メガまでといった設定や、拡張子(jpg,png,gif,pdf,xlex,xlem)などといった拡張子指定 といった機能もほしいところです。 どうかお力添えをお願い致します。 補足 ~メガや拡張子はjavascriptでもいいのかな・・・?

    • 締切済み
    • CGI
  • 添付ファイルを送信できるCGIメールフォーム。

    文章と添付ファイルを送信できるCGIメールフォームを探しています。 レンタルではなく、CGIを配布しているサイトで、できれば無料が良いです。 デスクトップ壁紙などの大きなファイルも送信できるメールフォームが良いです。サーバーは2000MBありますので特に問題はないと思います。 オススメのがありましたら教えてください。

    • ベストアンサー
    • CGI
  • CSVファイルにあるメールアドレスの重複チェック

    初めて投稿させていただきます、perl初心者です。 イベントの登録とデータ集計がしたくて、色々なメールフォームCGIを 比較検討しております。 今評価中のプログラムはデータをCSVにかき出してくれるのですが、メールアドレスの重複チェックが付いていません、そこでこのプログラムにメールチェック機能を追加したいと考え、色々見て廻ったのですが、良く分かりませんでした、 頭の中では書き出されたCSVファイルを読み込んでメールの列だけ抜き出し、それをチェックすれば良いのかなと考えています。 perlの本やohzakiさんのPerlメモ等も見ましたが良く分かりません。 何方か分かりやすく教えて頂けると助かります。

    • ベストアンサー
    • Perl
  • 500MB程度のデータを添付できるメールフォームの設置について。

    500MB程度のデータを添付できるメールフォームの設置について。 A1サイズ程度の大型出力を行う印刷屋を今度はじめるのですが、 相手先とのやり取りを円滑に行うためインターネットでデータのやり取りを行えるようなシステムを 構築したいと思っています。 .ai .psd .pdf .jpeg .zip等の拡張子が対応で、500MB程度のデータを添付することができる メールフォームの設置を行いたいと思い、CGIを検索していたところ ファイル添付機能付メールフォーム(http://www.yumemaboroshi.net/cgi4969/) というCGIを見つけて設置を行ったのですが、 50MB程度までは正常に動作しますが、それ以上になるとIEのタイムアウトエラーになってしまい 添付データの送信が行えませんでした。 デカメール(https://www.decamail.jp/)というレンタルメールフォームもあるようですが コストを抑えたいため出来れば自分のサーバーに設置したいです。 設置するサーバーの予定は、CORESERVER CORE-A(http://www.coreserver.jp/)というもので 15GBの容量があるのですが、管理者に問い合わせたところサーバー自体はCGI設置可能だそうです。 会員登録無しで添付ファイルを送信することが出来るものが良いです。 詳しい方いらっしゃいましたらアドバイスお願いいたします。 よろしくお願いいたします。

    • ベストアンサー
    • CGI
  • 画像ファイルのサイズ変更

    CGI(PERL)を使用して、画像データ(JPEG,GIFなど)のサイズ(ファイルサイズも変わるかな。)を変更して,サーバーに保存したいと考えています。どなたかヒントだけでも,お願いします。

  • チェックしようとしたCGI(test.cgi)が見つかりませんとなるのですが、どうしたら良いでしょうか

    HPを現在作成していて問い合わせフォームを作っていますが 問い合わせフォームのCGIがうまく動作しません。 WwwMail Ver3.26では直接ネットから開くとCGIは正常に動作していますと表示されますが いざサンプルページからメール送信をすると500エラーが出てしまいます。 http://www27.tok2.com/home/wanchan/500.htm#3 のエラーチェックcgiで試したら チェックしようとしたCGI(test.cgi)が見つかりません。 ---------------------------------------------------------------- 5.008005 と出ます。 どういった原因でしょうか? よろしくお願いします。

    • 締切済み
    • CGI
  • テキストのみのメールフォーム用CGIにチェックボックスを設置

    現在、Perlを使ったメールフォームCGIを作成中なのですが、 元々Perlの知識はほとんどないところ、 サンプルCGIをダウンロードして必要な部分だけを修正し、 少しずつ希望するメールフォームに近づけているところです。 テキストフォームを新たに追加して、 それに対応できるように CGIプログラムの命令文を多少追加したりする程度は 何とか出来るようになりましたが、 チェックボックスを設置してみたところ、 複数にチェックを入れても、 送られてくるメールには はじめにチェックしたvalue情報しか送られてきません。 CGIのどこを修正すれば良いのか、 Perl言語自体をきちんと勉強していない私にとっては 皆目検討もつかず、暗礁に乗り上げてしまっています。 この程度の情報では、まともに回答するには情報不足だと思いますが、 このような問題解決には概ねCGIの どの辺りのどの命令文を確認すれば良い等、 判断できる範囲でご教授いただけましたら幸いです。

  • cgiが動作しないのは?

    サーバー移転でメールフォームのcgiを移動させたらcgiが動作しなくなりました。 パーミッション・perlのパス等は移転する前と同じ設定にしています。 メールの内容の確認ボタンをクリックすると、cgiが動作し確認画面へいくのが正しい動作なのですが、現状はメールの内容の確認ボタンをクリックするとcgiの内容が表示されてしまいます。 サーバー側の設定の問題なのでしょうか?

専門家に質問してみよう