• ベストアンサー

複数の添付ファイルの受信について

参考URL: http://www110.kir.jp/php/shtml/php00205.shtml 上記URLを参考にPHPの練習をしているのですが、 上記のものですと、複数のファイルに対応してません。 どの部分を修正すると複数のファイルに対応できるのでしょうか?

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

  • ベストアンサー
  • togino
  • ベストアンサー率75% (97/129)
回答No.1

参考 URL にあげられたプログラムを書いた本人でないので 正しい回答になるか分かりませんが、 とりあえず分かる範囲でお答えしようと思います。 参考 URL にあるプログラムでは $part[$m] = Split("\r\n--".UrlEncode($a_temp[1])."-?-?", $honbun[$m]); とありますので、複数添付ファイルがあったとしても $part[$m][0] 1つ目の添付ファイル $part[$m][1] 2つ目の添付ファイル ... と、正しく複数のパーツに分割しているように見受けられます。 1つ疑問なのは、書き込みしているファイル名が $a_file = Fopen($hozonDir.$filename[$m], "w+b"); と $filename[$m] の1つに限定されている点です。 つまり、複数の添付ファイルがあったとしても、 1つのファイルに追記する形で書き込んでいるようです。 もし、複数のファイルに分けて保存したい場合 foreach ($part[$m] as $dummy10) { List($x_head[$m], $x_body[$m]) = Split("\r\n\r\n", $dummy10, 2); の直後に //---- ファイル名の取得-- 以下の if 文まるごと移動させた上で if (eregi("name=\"?([^\"\n]+)\"?",$honbun[$m], $a_filename)) { の $honbun[$m] を $x_head[$m] に書き換えれば $part[$m][] 配列の各パーツごとにファイル名を取得して、 そのファイル名で保存するようになると思います。 ただ、添付ファイルが入れ子になっていたり 添付されるファイルの種類の組み合わせによって いろいろ考慮しないといけない点も多いので ちゃんとした添付ファイルの処理をしようと思うと かなり複雑になると思います。 外しているとは思いますが、よろしくお願いします。 # プログラムを書かれた本人様に伺うのが一番かと(^^;)

ka_zu57
質問者

お礼

ご返答ありがとうございました☆ 上記を参考にチャレンジしてみます。 作者さまへも連絡を取ってみるようにします