iPhoneからのメール送信で添付画像が上書きされてしまう問題

このQ&Aのポイント
  • iPhoneからのメール送信で、添付画像が一律「image.jpeg」というファイル名になり、過去の同名ファイルが上書きされる問題が発生しています。
  • ファイル名を取得する際にランダムな文字を末尾に追加することで、ファイル名の重複を回避できる可能性があります。
  • mailbbs.php内の175行目「ファイル名を抽出」以降に何かを加えることで問題が解決できる可能性があります。
回答を見る
  • ベストアンサー

レッツPHP「写メールBBS」にてファイル名変更を

http://php.s3.to/bbs/bbs7.php レッツPHPさんの「写メールBBS」を設置し、運営を行なっております。 PCメール、携帯電話(所謂ガラケー)からは問題なく投稿が行われておりますが、 iPhoneからのメール送信を行った際に、最後のiPhoneからメールにて送信された画像で 過去iPhoneからメールにて送信された画像が上書きされてしまう現象に悩まされております。 どうやらiPhoneから送信された添付画像が全て一律「image.jpeg」というファイル名になる為、 過去の同名ファイルが上書きされているのだと思われます。 そこで画像のファイル名を取得する際に末尾にランダムに何文字か追加する事で ファイル名が上書きされない様にすれば良いのでは無いかと考え、 mailbbs.php内の175行目「ファイル名を抽出」以降に 何かを加えれば良いのではと考えておりますがなかなか上手くいきません。 何か良い方法等ありましたらどうぞご教示お願い致します。

  • PHP
  • 回答数1
  • ありがとう数2

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

  • ベストアンサー
  • agunuz
  • ベストアンサー率65% (288/438)
回答No.1

そもそも投稿されたファイル名を使うのが好みじゃないんだけどね(汗 // 添付データをデコードして保存 のちょっと下の $tmp = base64_decode($m_body); if (!$ext) $ext = $sub; if (!$original || !$filename) $filename = $now.".".$ext; の次あたりに if (file_exists($tmpdir . $filename)) { $now.".".$ext; } も追加すればいいと思う(重複するファイル名だったら「ファイル名がない」ときと同様に自前のファイル名を与える)。 $now じゃなくて、md5($tmp)でも可だし、個人的には全部 md5($tmp) . "." . $ext とかにしたい(もちろん、$extはextf_imagetype($tmp)の戻り値を元に決定する)。

cinnamon6
質問者

お礼

ご教示頂いた方法で解決する事が出来ました。 この度はありがとうございました。

関連するQ&A

  • レッツPHP!の写メールBBSについて

    レッツPHP!で紹介されてる写メールBBSでどうしてもわからないことがあります。 設置はできたのですが、携帯からメールで画像をアップしたと仮定して、アップした画像のURLを画像を送った相手に自動送信するにはどこを改造したらいいのでしょうか? 2・3日いろいろ試したりぐぐったりしたのですがわからなかったので詳しい方いたら教えてください。

    • 締切済み
    • PHP
  • レッツPHPさんの「写メールBBS」で

    http://php.s3.to/bbs/bbs7.php レッツPHPさんの「写メールBBS」を設置しました。 PCメール、docomoメール、ezメールからは問題なく写真も文面も掲載されますが、 ソフトバンク109SH(ガラケー)から書き込むと写真のみ掲載されて、文面がされません。 掲載できる時とできない時があり、ほぼできない事が多いです。 ソフトバンク109SHで書込みできなかったのをdocomo(ガラケー)やPCに一旦転送して書き込むと掲載できます。 ソースに不具合があるのでしょうか?それとも携帯端末でしょうか? ちなみにさくらインターネットのサーバで、独自ドメインで運用してます。 転送メールを使ってでも良いので、何か良い方法があれば教えてください。

    • 締切済み
    • PHP
  • 写メールBBSを設置について

    写メールBBSを設置したいのですが、画像が表示されず困っています レッツPHP http://php.s3.to/bbs/bbs7.php どこで間違っているのか教えてください ■ 設置方法 1. 受信用メールアドレスを用意して下さい。写メールBBS専用にするといいでしょう 2. 「config.php」で受信メールアカウントの設定、削除パスの設定をしてください。 3. riyou.htmlの受信アドレスを適宜修正してください。 4. すべてのファイルをFTPソフトでアップロードしてください 5. 画像保存用ディレクトリ「data」を作成し、パーミッション(読み書き属性)を777などにします。 6. ログファイル「mail.cgi」のパーミッションを666などにします (1)yahooメールを作成してPOP3設定を行い、アウトルックで送受信できるようにしました 受信メール(POP3サーバー) pop.mail.yahoo.co.jp 送信メール(SMTP)サーバー smtp.mail.yahoo.co.jp アカウント名/ログイン名: ログインID パスワード Yahoo! JAPAN IDのパスワード メールアドレス ~@yahoo.co.jp (2)config.phpの変更 // 受信メールサーバーの設定 // POP3サーバー $host = "****";****をpop.mail.yahoo.co.jpに変更 // ユーザーID $user = "****";****をYahoo!ログインIDに変更 // パスワード $pass = "****";****をYahoo!ログインパスワードに変更 // 更新後のジャンプ先(表示スクリプトのURL) $jump = "http://~/mailbbs/mailbbs.php"; (3)riyou.html 画像やメッセージを、<br><a href="mailto:???@????.????">????@????.???</a> 宛に送信して下さい。 ????@????.???を~@yahoo.co.jpに変更 (4)パイナリーとアスキーを確認しアップロード (5)dataはmailbbs[フォルダ]の中に始めから1つあったので作成していません (6)ファイル構造は下記 public_html / | mailbbs[フォルダ] | data[フォルダ][777] mail.cgi[666] config.php htmltemplate.inc mailbbs.php mailbbs_admin.html mailbbs_edit.html mailbbs_i.html mailbbs_pc.html pop.php riyou.html ※data[フォルダ][777]、mail.cgi[666]以外のパーミッションはいじってません

    • 締切済み
    • PHP
  • 「写メールBBS」のようなものをperlで。

    レッツPHP(http://php.s3.to/)さんのところの「写メールBBS」のようなperlスクリプトを作ってみたいと思っています。 が、メールを取り込む(?)ような動作をするプログラムを書いた事がないので、まったくさっぱりわかりません。 で、サンプルになりそうなperlスクリプトを探してみたのですが、 PHPばかりでみつかりませんでした。(PHPは全くわかりません) 参考になりそうなperlスクリプトがあれば教えてもらえないでしょうか。 もしくは処理の流れを簡単に教えて下さると助かります。

    • ベストアンサー
    • Perl
  • PHPでBBSを作りたいのですが・・・。

    初心者の初心者です・・・。 使っているサーバーがPHPが出来るので、意外と簡単と噂のPHPを勉強しています。 今使っている本はMYSQLなどのデータベースと関連付けているもので、サーバーではMYSQLは使えないそうなのです。 データベースがなくても、なにやら空のファイルを作ってそこにログを蓄積、HTMLとして出力すればBBSは出来るらしいのですが、じっさいPHPのプログラムの中ではどういった文を書けばよいのでしょうか・・・。 配布されているスクリプトのソースを何回かみて、なんとなく・・・これかなー??みたいのはわかるのですが、完成されたプログラムは長いし複雑すぎてちょっと辛いです。お願いします、助けてください(;;) たとえば、フォームに入力した1文字を送信ボタンのようなものを押すことで、ページに出力。 ログを残しながら次々に出力できるようにするプログラムの例とかを教えていただけるとうれしいです。

    • ベストアンサー
    • PHP
  • PHPでのガラケー、PC、iPhone振り分け

    レッツPHPさんの写メールBBSを使用しています。 iPhoneページを作成し、mailbbs.phpで振り分け設定を試みたのですが どれだけやってもどうにも上手くいきません。 スマートフォンのページ名をmailbbs_smart.htmlとし、 (他のPC用、携帯用ではデフォルトでmailbbs_pc.html、mailbbs_i.htmlとなっていました) 振り分け設定では mailbbs.phpに $ua = explode("/", $_SERVER['HTTP_USER_AGENT']); if (strstr($ua[0], "DoCoMo")) { $env = "i"; // DoCoMo } elseif (preg_match("#^UP.Browser|KDDI#i", $ua[0])) { $env = "i"; // au } elseif (preg_match("#^J-PHONE|Vodafone|SoftBank|MOT#i", $ua[0])) { $env = "i"; // Vodafone } elseif (preg_match($ua[0] , "iPhone")) { $env = "smart"; //iPhone } と記述しました。 他にeregなどでも設定したのですが大抵 ・ページが表示されない か ・PC用のデザインで表示される という風になってしまいます。 htmltamplate.incとの関連付けが上手くいってないからでしょうか。 当方PHPに関してあまり詳しくありません。 レッツPHPさんの写メールBBSを使用した方いましたら、 是非ご教授お願いします。 レッツPHPさんのHP http://php.s3.to/bbs/bbs7.php

    • 締切済み
    • PHP
  • phpについて

    urlの末尾(ファイル名)を取得し a href="末尾"に入れることはできますか? ファイル名がたとえば10.phpのときファイル名にインクリメント、デクリメントをしてa href="9" とa href="11"を作りたいです。 ファイル名が11.phpのときは a href="10" とa href="12"を作りたいです。 urlの取得ができるのか? 上記のプログラムの仕方を教えていただきたいです。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • phpでメール送信

    phpでメール送信プログラムを構築する際、メール本文の姓と名にスペースを入れたい場合、構文はどうすればよろしいのでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • お絵かきBBS

    BBS NOTE 8.0b16を使っています しいのBBSです 自分で設定などしてWEB上で使っています 絵を描いて投稿するときに、描いたものが重過ぎるとアップできないのですが、どこを直したらいいんのでしょうか? おそらく投稿時の画像のサイズ制限がかかっているのですが どのcgiファイルのどの場所に入っているのかがわかりません ファイル名(ファイル名は初期設定と一緒です)と出来ればファイルで検索でひっかりそうな部分を教えてください

  • 携帯から画像を添付し、WEBページの画像を変更するには

    画像関連は初心者なのですが、 私が作ったHPがあったとして、 そのHPの画像を携帯から変更したい場合は、 どのようなCGIを組めばいいのでしょうか? 調べたところによると、メール添付にて、サーバに受信させた画像を 上書きする形になるようなのですが、 初心者でもわかりやすいサンプルなどありましたら 教えてください。 また、メールを画像変更の受信専用にする他、気をつけなければいけない点などありましたら、よろしくお願いします。 調べたものは↓になります。 http://loglog.jp/~php/bbs/bbs7.php

    • ベストアンサー
    • PHP