カレッヂ |
質問者 katochan
投稿日 3/26(水) 22:28:03
685行以下のコードが理解できません。 @in は未定義?のようですし、 filename= は該当するコードがない?ようです。 foreach (@in) { ($fname) = $_ =~ /\bfilename="([^"]*)"/i; #\b 区切り文字に一致 ($fname) = $_ =~ /\bfilename=([^\s:;]+)/i unless defined $fname; if ($fname eq '') { next; } ($name) = $_ =~ /\bname="([^"]+)"/i; ($name) = $_ =~ /\bname=([^\s:;]+)/i unless defined $name; 以下の2行の \s*Content-type:\s*"([^"]+)" がどれをさしているのか分からない。 ($ctype) = $_ = /\s*Content-type:\s*"([^"]+)"/i; ($ctype) = $_ =~ /\s*Content-Type:\s*([^\s:;]+)/i unless defined $ctype; unless ($ctype =~ /^image/i) { &error('エラー',"画像ファイル以外は取扱できません."); } if ($ctype eq '') { &error('エラー',"$fnameはContent-Typeが認識できないために受付できません."); } if ($name =~ /IMAGE/) {
プロバイダ参照: |
回答者 やまだ
[削除]
投稿日 3/26(水) 23:59:34
確かにin配列がmy|localで定義されていないですが、よく見ると適当に使われているのでglobal変数(mainクラス中)として 勝手に定義はされていると思いますが。 それから、filename= については、HTTP MIMEの Content-Disposition: ???; filename= ??? にマッチする正規表現の文字列の一部だと思うのですが。 |
質問者 katochan
[削除]
投稿日 3/27(木) 11:57:37
やまだ さん 有り難うございます。 >確かにin配列がmy|localで定義されていないですが、よく見ると適当に使われているのでglobal変数(mainクラス中)として 勝手に定義はされていると思いますが。 ヒントをいただいたお陰で理解できるカ所にたどり着きました。 cgi-lib.pl に書いてありました。 初めて、読んだのですが、画像ファイルの処理など書いてありまして、疑問のところが ほとんど解決?したようで、目から鱗です。 |
このページは終了したので返信(回答)は書きこめません
Web裏技 |