HTMLフォームでmultipart/form-dataによりPerlCGIのcgi-lib.plで値を取得するやり方で画像ファイルをWebサーバーのフォルダにアップロードします。
その際例えば600KBより大きければ、「画像が大きすぎます。600KB以下のデータに変更して再度実行してください」というHTMLメッセージを、600KB以下なら保存する、という条件分岐はどう書いたら良いでしょうか?
またCGIで判断させるとしたら一旦データを取り込んでから判断するわけですから、ファイルアップロードが実行された後の処理という事で時間がかかりそうなので、ひょっとすると一般的にはJavascriptか何かでHTML側で判断して600KB超のデータなら、そのデータは送らないみたいなことをするのかも・・・もしそうならその記述も教えてください?
ちなみにPerlもJavaScriptも初心者レベルですのでお手柔らかな解答お願いします。
No.2ベストアンサー
- 回答日時:
JavaScript では無理なんで、CGI側で行うことになりますが、CGI.pm にしろ cgi-lib.pl を使うにしろそれ以前で
CONTENT_LENGTH
を読んでサイズを確認するのがよいかと。
if( $ENV{CONTENT_LENGTH} > 600*1024 )
{ print("だめぽ"); exit(0) }
とかで。
実際にはファイルサイズのみならず、それ以外のデータもくっついたサイズですが、ファイルサイズのほうが圧倒的に大きいのが普通なので、誤差ってことで無視するとか。
返事おくれて申し訳ありませんでした。
教えてもらった条件分岐で"いけぽ"でした。
ありがとうございました。またよろしくお願いします。
No.1
- 回答日時:
むーん(^_^;
それは cgi-lib.pl の仕様なので、お手柔らかにするのは無理かも(笑)
サイズオーバー時にはエラーメッセージを表示せずに実体データとして undef を設定するようにすればいいんですけど……。
これをやるには cgi-lib.pl を改造するしかないんですよ。
あるいは、CGI.pm という Perl モジュールを使用する方法もあるにはありますが……。
難しいすか・・・
>これをやるには cgi-lib.pl を改造するしかないんですよ。
先程サイズオーバーになったので、cgi-lib.pl サイズを書き替えましたが、そんなちょっとした改造ではないのでしょうね・・・
>あるいは、CGI.pm という Perl モジュールを使用する方法もあるにはありますが……。
そういう手があるというのも調べて分かったんですが、cgi-lib.plを使った方法の方がなじみがあったもんで、そちらでやってみたんですが、やっぱりCGI.pmでのコーディングの方が良いのでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・【お題】絵本のタイトル
- ・【大喜利】世界最古のコンビニについて知ってる事を教えてください【投稿~10/10(木)】
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
jcode.plが読み込めない
-
画像アップロード時の条件分岐
-
QUERY_STRING が、SSIを使用す...
-
require文が実行できない
-
送信されたはずのフィールドの...
-
月の第一週とは
-
毎○曜日って、使いますか?
-
エクセルで相対パスの書き方を...
-
よくある 『 第○(1・2・3・4・...
-
エクセルで毎月第2週日の水曜日...
-
週2回のペースって だいたい何...
-
DBを10件毎に表示ページング...
-
[Excel] ある日の曜日が当月の"...
-
上位階層のディレクトリパスを...
-
毎週同じ曜日にラブホに行くと...
-
アンケートなどの1日1回の投...
-
apacheでPerl CGIが作動せず、5...
-
ディレクトリパスの取得について
-
VBA。複数のChangeイベントをま...
-
VBAでExcelのヘッダーに文字列+...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
jcode.plが読み込めない
-
cgiとplとpm
-
環境変数に任意の文字列をセッ...
-
require文が実行できない
-
Perlソースを2つのファイルに分...
-
Quantifier follows nothing in...
-
携帯用のページに perl で post
-
CGIの中にinclude
-
Location: で cgi → c...
-
PDFJが動作しない
-
バイナリファイルのアップロード
-
gifcat.pl:助言お願い致します
-
ファイル書込時にPermission de...
-
HTML化によるホームページの高...
-
apacheの mod_rewite の設定方...
-
use CGI
-
cgiからcgiをコールする。
-
htmlからテキストを返すperlを...
-
imgタグのクエリストリングを取...
-
win32::mediaplayerについて
おすすめ情報