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

お世話になります。

http://apps.cside.com/
このサイトで配布されている「ThemeResMail」というCGIの動作テストをしています。
http://apps.cside.com/theme/tmresmail/

メールフォームCGIで、添付機能もついているのですが、フォームからファイルを添付して送信すると、確認メールにはファイルが添付されて届くのですが、管理者画面のメールログからはファイルの内容が確認できません。
具体的には、下記のようなエラーが出ます。

-> ファイルアクセスエラー。(内部エラー)
-> 一時アップロードファイルの読込みに失敗しました。

管理画面からは、添付ファイルを画面上からダウンロードできるように説明されているのですが、上記のようなエラーが出てダウンロードできません。

またメール投稿の確認画面でも、添付した画像データを表示する事ができるようになっていますが、この投稿確認画面でも画像ふが表示される箇所が「×」マークになって表示されません。

配布されているスキン「求人募集スキン+」を、最低限必要な設定をしてからアップして、動作テストをしてもやはりうまく添付ファイルが表示されません。
管理者側に届く確認メールには、ちゃんとファイルが添付されて届きます。
http://apps.cside.com/theme/tmresmail/skin_haihu/

パーミッションの設定も複雑ではないので、間違っていないはずなのですが、なぜこのようなエラーがでるか原因不明です。

配布先も、一切サポートしないような記述があるので、メールをしても返信が返ってこない可能性が高いので、こちらにアドバイスを求める事にしました。

アドバイスをお願い致します。

A 回答 (2件)

すみませんちょっと間を空けてしまいました。



エラーメッセージの内容から判断すると

if( $tmp_up_file->openTempFile() &&
$tmp_up_file->checkSessionID( $this->{'req'}->getParam("session") ) &&
$tmp_up_file->readFile( $this->{'req'}->getParam("key"), $file )
) {




if( $tmp_up_file->openTempFile() &&
$tmp_up_file->readBoundaryByAdminMode() &&
$tmp_up_file->readFile( $this->{'req'}->getParam("key"), $file )
) {

の 判定でエラーが起こっていて、多分ファイルオープンで引っかかっているのだろうと
踏んだのですが違うみたいですね。

質問文を読み返すと管理者画面…とあるので後者の判定でしょうか。
とりあえずは原因を特定しないとどうにもできないので、

if( $tmp_up_file->openTempFile() &&
#$tmp_up_file->readBoundaryByAdminMode() &&
$tmp_up_file->readFile( $this->{'req'}->getParam("key"), $file )
) {

のように、チェックの一つをスルーしてみてください。
これでメッセージが出なくなればここでのチェックが
怪しいと絞れるのですが。
    • good
    • 0
この回答へのお礼

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

$tmp_up_file->readBoundaryByAdminMode() &&

は「AdminMode.pl」と「UpFileReader.pl」の2つのファイルで、同じ記述がありましたので、両方とも試してみました。
「AdminMode.pl」の方で、コメントアウトした場合、管理画面から「メールログ閲覧」を選択して、記事一覧が表示されるので、ログを閲覧したい記事をチェックしてからボタンを押すと、下記のようなエラーが出ます。
--------------------------------------
エラーリポート

-> ファイルアクセスエラー。(内部エラー)
-> 保存用添付ファイル「./data/f_20071126-1.cgi」の読込みに失敗しました。

次のボタン、またはブラウザのバックボタンで前の画面へお戻りください。
 ひとつ前の画面へ  (←実際はボタンになっています)
--------------------------------------

次に「UpFileReader.pl」の方をコメントアウトしてみると、これまでと同様のエラーが表示されます。


メールフォームでデスクトップから画像ファイルを選択して、確認画面になると添付した画像も確認できるようになっているのですが、この確認画面の段階から画像が表示されません。

ですが、実際に管理者に届くメールには、添付された画像ファイルがちゃんと届いています。
添付されたファイルを、デスクトップに保存すれば問題なく画像は見る事ができます。

メールには添付して届くのに、WEB上では画像が表示されない状態になっています。

「data」ディレクトリには画像ファイルではありませんが、画像データと思われるログファイルは投稿ごとに作成されます。
やはりファイルオープンの段階で異常があるのかもしれません。
あと、管理者画面で投稿内容を閲覧する事ができるのですが、入力フォームに記入された内容や、チェックボックスやラジオボタンで選択された内容は、ちゃんと見る事ができます。

添付された画像だけが見る事ができない状況です。


お手数をおかけしますが、アドバイスをお願い致します。

お礼日時:2007/11/26 16:29

エラーメッセージはブラウザ画面に出てくるのですよね?


であれば、UpFileReader.pl の44行目あたりと110行目あたりの

#読む
if( $tmp_up_file->openTempFile() &&
$tmp_up_file->checkSessionID( $this->{'req'}->getParam("session") ) &&
$tmp_up_file->readFile( $this->{'req'}->getParam("key"), $file )
) {
$tmp_up_file->closeTempFile();

} else {
$this->{'ctl'}->displayErrorPage(
ERROR_FILE,
"一時アップロードファイルの読込みに失敗しました。$!" #文字列を修正
);
}

#読む
if( $tmp_up_file->openTempFile() &&
$tmp_up_file->readBoundaryByAdminMode() &&
$tmp_up_file->readFile( $this->{'req'}->getParam("key"), $file )
) {
$tmp_up_file->closeTempFile();

} else {
$this->{'ctl'}->displayErrorPage(
ERROR_FILE,
"一時アップロードファイルの読込みに失敗しました。$!" #文字列を変更
);
}

の二箇所を変更して、エラー発生時にエラーの原因を表示するようにして
原因を確認してください。
    • good
    • 0
この回答へのお礼

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

>エラーメッセージはブラウザ画面に出てくるのですよね?
はい、仰る通りブラウザ画面に表示されます。

教えて頂いたように、エラーメッセージの箇所に「$!」を追加して、再度試してみましたが、表示されるエラーメッセージを変わりませんでした。

-> ファイルアクセスエラー。(内部エラー)
-> 一時アップロードファイルの読込みに失敗しました。

上記のように表示されます。
ファイルを添付して送信が完了した後には、「data」ディレクトリの中に「f_20071124-1.cgi」というファイルができます。
このファイルの中をのぞいてみると、文字化けした文字列がならんでいます。

spo1iug61rlTQUtGV5grUeSX.824779713.1195905367.(ここにIPアドレスが入る)

-----------------------------041084067364774
appufairu
1.jpg(←添付したファイル名)
image/jpeg
以下文字化けした文字が続く


サポート掲示板もないため、他の方も同じような症状が出ているのか分からず、私だけの症状なのかバグなのかも分かりません。


アドバイスをお願い致します。

お礼日時:2007/11/24 21:08

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