• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:携帯から送信された画像データを保存したい)

携帯から送信された画像データを保存したい

このQ&Aのポイント
  • 携帯電話から送信された画像データをサーバに保存する方法を知りたいです。
  • 現在、携帯電話からメールに添付された画像データをサーバに保存するための手順について教えてください。
  • サーバに保存された画像データを正しく開くための変換方法について教えてください。

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

  • ベストアンサー
回答No.1

とりあえず、 http://hal456.net/qdmail_rec/ こんな感じのメールのパーサもありますので、そういったものを使ってみると、楽出来るかもしれません。 それはさておき、質問者さんが切り出した部分に関してですが、 その部分は、問題なさそうです。 これをどうやって画像に戻すか、ですが、メールの仕様なんですが、 バイナリデータなどを送信するときは、そのヘッダの 「Content-Transfer-Encoding: base64 」 とあるように、base64でエンコードされています。ですので、base64でデコードしてやれば良いです。 が、それをデコードする前に、もう一個メールの仕様として、 メールの文章やデータ一行は、「78文字」以内に収め、「¥r¥n」で改行する というものがあります。 その、base64の文字列を見て文字数をカウントすると「76文字」で、それプラス改行コード「¥r¥n」で2文字 合計78文字ですね。 ということで、そのbase64でエンコードされている各文字列を、改行コードを取り去ってから連結してやって、 base64_decode関数などで、デコードしてやれば、バイナリが取得出来るので、 後は、filenameのところに記述されているファイル名などのファイルにfile_put_contentsなどで保存してやれば良いのではないでしょうか。

seventozero
質問者

お礼

ご回答頂きありがとうございます。 丁寧に説明いただきわかりやすかったです、 早速やってみたいと思います。 ちなみに、写真データの始まりの部分は今切り取ってる部分でいいのでしょうか? なにか決まりごとがあるのでしょうか?

その他の回答 (1)

回答No.2

MIMEヘッダの仕様に関しては、 http://www.atmarkit.co.jp/fnetwork/rensai/netpro03/netpro01.html こちらで分かりやすく解説されてます。 Conten-Typeで、HTTPヘッダなどと同じように、コンテンツの種類を書いて、 Content-Transfer-Encodingでそのコンテンツがどの様な文字形式で送られているかを書いて Content-Dispositionで、属性の指定をして 改行いれてから Content-Transfer-Encodingで指定された形式で、添付ファイルの内容を記述すると。 くわしくは、上記URLの真ん中あたりから読んでいただければだいたい分かるかと思います。

seventozero
質問者

お礼

ありがとうございます。 参考にがんばってみます。

関連するQ&A