• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:perlを使用したcgiでの画像アップロードについて)

perlを使用したcgiでの画像アップロードについて

このQ&Aのポイント
  • 私自身のHPで画像のアップロードが出来る様になればいいなと思い、cgiの勉強がてら調べていた所、下記HPがヒットしたのでサンプルスクリプトを使用し、アップロードをしたのですが正常にアップできませんでした。
  • テストとして、【36,864 バイト】とのjpgファイルをアップしたのですが、サーバには、【622 バイト】のjpgファイルが作成され、もちろん正常に表示されませんでした。
  • 以上が確認したことなのですが、原因がわかる方、ご教授お願いします。

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

  • ベストアンサー
  • zxcv0000
  • ベストアンサー率56% (111/196)
回答No.1

参考にされたサイトの【サンプルソース】は自分でリクエストのMIMEマルチパートの解析をやってますね。 マルチパート解析と添付ファイルの取り出しは Perl標準の CGI.pm でできます。 信頼性や今後の保守の手間を考えると、CGI.pm に乗り換えられた方が良いんじゃ無いかと思いますよ。 必要なら CGI.pm の使い方を思い出して具体的に書きますが、どうされますか?

sick65
質問者

お礼

素早い回答ありがとうございます。 お手間ではなければお願いいたします。 只、cgi.pmも使用してみたのですが、 $type = $query->uploadInfo(filename)->{'Content-Type'}; どのサンプルコードでも上記の、1行でwrapper.cgiにて、 【Can't use an undefined value as a HASH reference at ./up.cgi line 27. 】 が表示、もしくはinternal server errorが表示されてしまうのですが、なぜなんでしょうか? これもコメントアウトの説明では、【# MIMEタイプの取得】と書いてあったのですが・・・。 サーバの設定がなにか問題があるのでしょうか?

その他の回答 (1)

  • zxcv0000
  • ベストアンサー率56% (111/196)
回答No.2

No.1 です。 $query->uploadInfo(filename)->{'Content-Type'} とありますが、filename は $filename の間違いですよね? まず、それを直してください。 うまくいかなければ、 http://perldoc.jp/docs/modules/CGI.pm-2.89/CGI.pod を開いて uploadInfo を文字列検索してください。 その前後に、関係する事柄が書かれています。 ご自分のコードが間違って無いか確認してください。 特に、$filename に設定する内容が重要です。 それから、 http://chaichan.web.infoseek.co.jp/qa4000/qa4373.htm の中の 5:[回答] の内容も確認してみてください。 この件に関しては、そのCGIが動いている Webサーバーを疑うのはもう少し後で良いと思います。

sick65
質問者

お礼

返信ありがとうございます。 また、提示して頂いたサイトを読み込んでしまい、返信が送れすみません。 サイトの参考に注意し、0からスクリプトを組んでみました。 内容はつたないですが、結果的に満足いくものが作れました。 本当にありがとうございました。

関連するQ&A