• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:携帯メールから添付画像ファイルを取得する方法について)

携帯メールから添付画像ファイルを取得する方法について

このQ&Aのポイント
  • PHPを使って携帯サイトを作成しています。PEARライブラリのMail_mimeDecodeを使って、添付ファイルの画像を抽出したいと思っています。
  • Mail_mimeDecodeを使ってメールを分解し、画像の情報を取得します。一時ファイルを作成し、画像の本体を書き込んでいます。その後、画像の形式を確認して、適切な画像ファイルに変換します。
  • 一時ファイルを削除し、取得した画像を保存します。一時ファイルの作成は画像ファイルを作成するための準備作業として行われます。一時ファイルを介して画像データを処理することで、安全かつ効率的に画像ファイルを取得することができます。

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

  • ベストアンサー
  • UmJammer
  • ベストアンサー率58% (115/196)
回答No.1

tempnam()は「一時ファイル」ではなく「一意なファイル名(とファイル)」を作る関数です。従って主たる目的は一意なファイル名の生成にあります。 http://jp2.php.net/manual/ja/function.tempnam.php

makochan07
質問者

お礼

勘違いしていました。ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 画像のアップロードができない

    PHPで携帯サイトを制作中なのですが、メールで画像をアップロードする ことができずに困っております。 具体的にはサーバーにファイル自体はアップロードされるのですが img配下を見ると「ev4rVY(エンコードされたファイル名)」がサーバーにアップされているものの、拡張子がついていないのです。 ▼画像アップロードプログラムPHPソース // ユーザー&認証コードチェック if ($user&&$auth_code==getAuthCode($user['id'], $user['auth_string'])) { // 認証OK // マルチパートの場合のみメールを解析して画像を取得 if (strtolower($structure->ctype_primary) == "multipart") { $images = getImage($structure->parts); } $image_save_path = null; // 画像リストの中から1つだけ画像を取得する foreach ($images as $image) { // コンテンツタイプのチェック if ($image['type'] == 'image/jpeg' || $image['type'] == 'image/gif' || $image['type'] == 'image/png') { // ファイルとして保存 // 一時ファイルパス $temp_path = tempnam('/tmp', 'img_'); if ($temp_path == false) { // error break; } $fp = fopen($temp_path, 'w'); if ($fp == false) { // error break; } fwrite($fp, $image['body']); fclose($fp); // 画像の形式と縦横サイズを取得 list($width, $height, $type) = getimagesize($temp_path); // 認識できる形式であれば、所定のメソッドで開く $imageSource = null; if ($type == IMAGETYPE_GIF) { $imageSource = imagecreatefromgif($temp_path); } else if ($type == IMAGETYPE_JPEG) { $imageSource = imagecreatefromjpeg($temp_path); } else if ($type == IMAGETYPE_PNG) { $imageSource = imagecreatefrompng($temp_path); } // 一時ファイルを消す unlink($temp_path); if ($imageSource) { // ファイル名決定 $path = tempnam($image_dir, ''); //unlink($path); $image_save_path = $path; // 画像をケータイディレクトリへファイル保存 imagejpeg($imageSource, $image_save_path); imagedestroy($imageSource); break; } } } ▲以上ここまで━━━━━━━━━━━━━━━━━━━━━━━━━ 開発環境:CentOS5 PHP Version 5.2.11 ※本を参考に制作しているのですが  本にはGD Graphics をダウンロードした方がよいと  記載がありました。関係ありますでしょうか。 どなたかお分かりになる方がいらっしゃいましたらどうか ご教授いただけませんでしょうか。 お願いいたします。

    • ベストアンサー
    • PHP
  • 携帯サイトの画像アップロード[PHP+MySQL]

    携帯サイトの会員マイページで 個人の画像をアップできる仕様を制作したいのですが (ブログやsnsサイトによくある、アバターの代わりに  画像をアップできる仕様です) どうしてもDBの更新・画像のアップロード、双方ができず 困り果てております。 ※メールエラーログをみてみたところ、  メールをトリガーとしてプログラム自体は動作していた  ものの、処理が途中でストップされておりました。 具体的には、下記のような仕様を考えています。 (1)アップしたい画像を添付して携帯メールを送信 (2)メールをトリガーとして画像アップロード&DB更新  プログラム起動 ~以下プログラムの中身の動作~ (3)届いたメールアドレス(拡張メールアドレス)から会員ID情報を  取得 (4)会員情報テーブル(sns_user)にマッチする会員IDの列の  image_pathの項目にアップロードした画像のパスが  更新される。  PHP+MySQLで制作中です。  「update テーブル名 set where 条件~」で調べてみたものの、  どうしても分からず質問させていただきました。  どなたかお分かりになられる方がいらっしゃいましたら  ご教授いただけませんでしょうか。 以下ソース内容 // ユーザー&認証コードチェック if ($user&&$auth_code==getAuthCode($user['id'], $user['auth_string'])) { // 認証OK // マルチパートの場合のみメールを解析して画像を取得 if (strtolower($structure->ctype_primary) == "multipart") { $images = getImage($structure->parts); } $image_save_path = null; // 画像リストの中から1つだけ画像を取得する foreach ($images as $image) { // コンテンツタイプのチェック if ($image['type'] == 'image/jpeg' || $image['type'] == 'image/gif' || $image['type'] == 'image/png') { // ファイルとして保存 // 一時ファイルパス $temp_path = tempnam('/tmp', 'img_'); if ($temp_path == false) { // error break; } $fp = fopen($temp_path, 'w'); if ($fp == false) { // error break; } fwrite($fp, $image['body']); fclose($fp); // 画像の形式と縦横サイズを取得 list($width, $height, $type) = getimagesize($temp_path); // 認識できる形式であれば、所定のメソッドで開く $ext = ".jpg"; $imageSource = null; if ($type == IMAGETYPE_GIF) { $imageSource = imagecreatefromgif($temp_path); $ext = ".gif"; } else if ($type == IMAGETYPE_JPEG) { $imageSource = imagecreatefromjpeg($temp_path); } else if ($type == IMAGETYPE_PNG) { $imageSource = imagecreatefrompng($temp_path); $ext = ".png"; } // 一時ファイルを消す unlink($temp_path); if ($imageSource) { // ファイル名決定 $path = tempnam($image_dir, ''); $image_save_path = $path . $ext; // 画像をケータイディレクトリへファイル保存 imagejpeg($imageSource, $image_save_path); imagedestroy($imageSource); break; } } } if ($image_save_path) { // 差出人取得 $from = getFrom($structure->headers['from']); $params = array(); $params[] = $user['id']; $params[] = $image_save_path; // データベースへ接続する // if ($db = connectDB($db_user, $db_pass, $db_name, $db_host, true)) { $sql = "update sns_users set image_path = '$image_save_path' where id = '" . mysql_real_escape_string( $_SESSION['id'] ) . "'"; execQuery($db, $query, $params); } } $query = "select * from sns_users where id = ''"; $result = mysql_query( $query ); $user = mysql_fetch_array( $result ); // データベースを閉じる closeDB($db); } ?>

    • 締切済み
    • PHP
  • 画像ファイルが崩れる

    Perlで、CGIを作成しています。 GIF画像をCGI経由で表示させようと思っているのですが、なぜか、画像が崩れてしまいます。GIFだけではなく、Jpegでも同じです。しかし、HTMLファイルの <img>タグでそのまま表示させようとすると、きちんと表示します。 どのようにすれば、崩れを抑えられますか? CGIソース---------------------- #!/usr/local/bin/perl $imgsrc="number/0.gif"; print "Content-type:image/gif\n\n"; open(IMG,$imgsrc); binmode(IMG); print <IMG>; close(IMG); -----------------------------EOF HTML---------------------------- <html> <head> </head> <body> <img src="cgi/image.cgi" width="28" hegiht="31"> </body> </html> ------------------------------EOF gif画像は、 http://www.akikobrand.com/icon/img/10/6/0.gif を使わせていただきました。(個人的な使用です)

    • ベストアンサー
    • CGI
  • jpeg画像を表示する方法

    質問させてください。 ボタンが押されると画像が表示されるプログラムを作成したのですが、画像部分が文字化けされた文字として表示されます。 <html> <head> <title>おみくじ</title> </head> <body> <CENTER> <form method="GET" action="<?php echo $_SERVER['PHP_SELF'];?>"> <input type="submit" value="おみくじ" name="button"> </form> <?php if (isset($_GET["button"]) && $_GET["button"] !== "") { $image_in = imagecreatefromjpeg("img/omikuji.JPG"); header ( "Content-type: image/jpeg" ); imagejpeg ($image_in); imagedestroy($image_in); } ?> </CENTER> </body> </html> phpのソースを丸々別ファイルにするという方法もとったのですが、状況は変わりませんでした。 どなたかお知恵をお貸しください。

    • ベストアンサー
    • PHP
  • 画像を表示するPHPファイルをHTMLファイルの中に埋め込みたいのですが。

    いつも、お世話になっております。 小生、只今、WindowsXPSP3上でXAMPPを使い、PHPを勉強中のPHP初心者です。 今回、自分でPHPで画像を表示させようと思い、ネットで調べ、以下の2つのソースファイルを作成しました。 source.html source.php 以下、ソースファイルの内容です。 -----source.html------ <html> <body> <center><img src="source.php"></center> </body> </html> -----source.php----- <?php $gazou = imagecreatefromjpeg("test.jpg"); imagejpeg($gazou); imagedestroy($gazou); ?> 以上の様な内容になっています。 そこで、今回質問させて頂きたいのは、上記のソースを1つのPHPファイルにまとめる事はできないのでしょうか?? お忙しい中、申し訳ございませんが、先輩方ご教授宜しくお願い致します。

    • ベストアンサー
    • PHP
  • phpでテキストを返す

    html側で <img src="./image.php" /> php側で header("content-type: image/jpeg"); imagejpeg($image); imagedestroy($image); とすると、画像が表示されますが、 これを画像ではなく、テキストで返すにはどのようにしたらいいでしょうか?

    • ベストアンサー
    • PHP
  • EXEファイルに画像も含ませる(?)方法

     いつも勉強させていただいております。 質問させていただきます。どうぞよろしくお願いいたします。  VB2008のFormに下のようなコードでjpg画像を貼り付けております。    Form1.BackgroundImage = Image.FromFile(Path & "Form1.jpg")  ビルドしてできたEXEファイルを他のPCで実行しようとすると 指定したパスに画像が見つからない、といった内容のエラーが出ますが 絵のついたアプリを作成する際,画像群もEXEファイルと常に一緒に移動しないといけないのでしょうか??  画像をEXEファイルに含んでおいて、起動するとすでにFormに 画像が張り付いている...(普通そうだと思うんですが...) というやり方が分かりません.是非アドバイスいただけないでしょうか。  どうぞよろしくお願いいたします。

  • *******imagetext.php***************

    *******imagetext.php***************:: <?php //画像(JPEG)ヘッダを追加 header("Content-type: image/jpeg"); //作成する画像の設定 //幅 $width = 400; //高さ $height = 100; //画像を作成 $img = imagecreate($width, $height); //色の設定(背景/文字列) imagecolorallocate($img, 255, 255, 255); $textcol = imagecolorallocate($img, 255, 0, 0); //書き込む座標 $x = 50; $y = 50; //文字サイズ $size = 20; //角度 $r = 0; //フォントファイルへのパス $font = "C:/WINDOWS/Fonts/MSGOTHIC.TTC"; //画像に文字列を書き込む $string = "文字列を書き込む"; $string = mb_convert_encoding($string, "UTF-8", "SJIS"); imagettftext($img, $size, $r, $x, $y, $textcol, $font, $string); //画像を出力 imagejpeg($img); ?> ************************** MSゴシックのファイルパスはこのように設定しています。 C:/WINDOWS/Fonts/MSGOTHIC.TTC エラーっぽいような文字化け画面になってしまいます。 質問1>>上記のような症状を解決するには? 質問2>>上記のことを解決したうえで、      //画像を出力      imagejpeg($img);      の部分をなくして、      //画像をファイルへ保存      ??????      へ変更するにはどのようにすればいいですか?

    • ベストアンサー
    • PHP
  • 2つの画像ファイルが異なるファイルだと判定したい

    PHPを使って2つの画像ファイルが異なるファイルであることを判定するプログラムを考えています。以下のように、画像ファイルを文字列として扱い、md5ハッシュ値を取得し、それを比較することで、画像ファイルが違うということを判別しています。 こちらですが、もし他に良いロジックをご存知の方がいらっしゃいましたら、ご意見いただければと思います。 よろしくお願いいたします。 <?php $hash1 = getMD5('hoge1.jpg'); $hash2 = getMD5('hoge2.jpg'); if ($hash1 == $hash2) { echo "同じ画像ファイルです。"; } else { echo "同じ画像ファイルではありません。"; } // 画像ファイルを文字列として扱い、 // md5ハッシュ値を取得する関数 function getMD5($image) { $fp = fopen($image, 'r'); $str = ''; while(!feof($fp)) { # 画像ファイルを1行ずつ読み込んで、文字列にする $str .= fgets($fp); } fclose($fp); // $strのmd5ハッシュ値を得る return md5($str); } ?>

    • ベストアンサー
    • PHP
  • 携帯で画像が表示されない

    こんにちは。 HTMLで、『<img src="画像のパス">』を入力して画像を表示させたいのですが、 PCから見るとちゃんと表示できているのに携帯から見ると「×」になってしまい表示できません。 ペイントで作成した画像なのですが、 拡張子「jpg」「bmp」「tif」「gif」どれも試してみたのですが駄目でした。 ファイルのサイズも大きくても小さくても表示できませんでした。 携帯au、docomo、softbankどれも表示されませんでした。 対処法はありますでしょうか。よろしくお願いします。

    • ベストアンサー
    • HTML
このQ&Aのポイント
  • 廃インクが満杯になった場合、一時的な解除方法を知りたいです。印刷が途中で完成させたいし、トレイやパネルが電源を切ってもとじない状況にあるので、戻したいです。
  • EPSON製品の廃インク満杯時、印刷を途中で完成させたい場合やトレイやパネルが電源を切ってもとじない場合に、一時的な解除方法を教えてください。
  • EPSONのプリンターで廃インクが満杯になった場合、印刷を途中で完了させたいし、トレイやパネルが電源を切ってもとじない状況から戻したいです。一時的な解除方法を教えてください。
回答を見る