[PHP-users 19705]Re: 画像

UNO Shintaro uno @ venus.dti.ne.jp
2004年 1月 6日 (火) 00:13:39 JST


> また、元の添付画像のファイル名をそのまま添付して返信していますが
> 表示されないばかりか、0KBのjpegファイルが送信されます。

メールに画像を「添付」したいのですよね?
“Content-dispositionのところに「何らかの正しいファイル名」を
書けば、それだけでメールに画像ファイルの中身が、何らかの便利な
仕組みで添付されて送られる”と思っておられませんか?
それで「正しいファイル名」が分からなくて悩んでおられるのだろう
と思うのですが。

mail関数には、そんな「便利な仕組み」はないのです。単純そのもの。
画像ファイルの内容を、自分でBASE64形式に変換してメールの中身に
書いてやる必要があります。つまり、

Content-Type: image/jpeg
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="$filename"

**ここに画像ファイルの中身をbase64エンコードで出力する**
--$boundary

のです。その出力がなければ、画像ファイルの中身が空(0KB)に
なるのは当然です。
今回は画像ファイルがformでuploadされているということなので、
そのファイルの中身を読み込んで(読み込み方は分かりますよね)
base64_encodeとchunk_splitで加工して出力します。

-- 
UNO Shintaro, 宇野 信太郎
mailto:uno @ venus.dti.ne.jp
http://www.venus.dti.ne.jp/~uno/



PHP-users メーリングリストの案内