アプリ版:「スタンプのみでお礼する」機能のリリースについて

いつもお世話になっております。

私自身のHPで画像のアップロードが出来る様になればいいなと思い、
cgiの勉強がてら調べていた所、下記HPがヒットしたのでサンプルスクリプトを使用し、アップロードをしたのですが正常にアップできませんでした。

http://www.aimix.jp/cgi/acccgilibupfile.html

テストとして、【36,864 バイト】とのjpgファイルをアップしたのですが、
サーバには、【622 バイト】のjpgファイルが作成され、もちろん正常に表示されませんでした。

※サーバはLinuxの自宅サーバを使用しております。
※cgi-lib.plは導入済みです。
※スクリプトの内容を一行だけ下記の様に変更しております。
【open OUT,">./img/$fnme";】にして、配下ディレクトリの【img】に保存するように設定。ディレクトリパーミッション777
その他はデフォルトの内容です。
※cgiパーミッション755。
※wrapper.cgiにてcgiのエラーはなし。
※perlは、【which perl】コマンドにて/usr/local/bin/perlであることを確認済みです。

以上が確認したことなのですが、原因がわかる方、ご教授お願いします。

A 回答 (2件)

参考にされたサイトの【サンプルソース】は自分でリクエストのMIMEマルチパートの解析をやってますね。

マルチパート解析と添付ファイルの取り出しは Perl標準の CGI.pm でできます。

信頼性や今後の保守の手間を考えると、CGI.pm に乗り換えられた方が良いんじゃ無いかと思いますよ。 必要なら CGI.pm の使い方を思い出して具体的に書きますが、どうされますか?
    • good
    • 0
この回答へのお礼

素早い回答ありがとうございます。

お手間ではなければお願いいたします。

只、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タイプの取得】と書いてあったのですが・・・。

サーバの設定がなにか問題があるのでしょうか?

お礼日時:2009/09/07 21:54

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 …
の中の 5:[回答] の内容も確認してみてください。


この件に関しては、そのCGIが動いている Webサーバーを疑うのはもう少し後で良いと思います。
    • good
    • 0
この回答へのお礼

返信ありがとうございます。
また、提示して頂いたサイトを読み込んでしまい、返信が送れすみません。

サイトの参考に注意し、0からスクリプトを組んでみました。
内容はつたないですが、結果的に満足いくものが作れました。

本当にありがとうございました。

お礼日時:2009/09/08 09:13

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!