重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

PHPで作成したフォームに複数の画像及びドキュメントファイル(.doc)を添付してメールにて送信させたいのですが、どのようにすればよいでしょうか?

入力欄又は選択欄のみのPHPフォームなら作成したことがあるのですが、ファイルを添付させるやり方がわかりません。
以下に何が分からないか詳細を説明します。
1)フォームの添付ファイル入力欄にはどのようなものを使用すればよいのでしょうか?<input type="file">などのような気はしますが、これで複数のファイルを選択できるのでしょうか?また、一つのフォームに添付ファイル入力欄を複数設置することは可能なのでしょうか?複数設置することができるとした場合、それらの入力欄で選択されたファイルをメールに添付したとき、一つのメール内で入力欄(フォームの)ごとに添付ファイルを区分けする方法はあるのでしょうか?

2)フォームの添付ファイル入力欄で選択したファイルデータをphpファイル間でどのように受け渡すのでしょうか?
通常の<input type="hidden" name="example" value="<?php echo $example ?>">(データの受け渡し)と$package = trim($_POST["example"]);(データの受取)の組み合わせでよいのでしょうか?

3)添付ファイルが選択されているかどうかのチェキングは、どのようなコードを使用するのでしょうか?また、gif、jpg、docファイルのうち、どの拡張子のファイルが幾つ添付されているかの値も知りたいのですが。

4)添付ファイルデータを電子メールで送信する関数は、どのようなものになるのでしょうか?現在は、mail($to, mb_encode_mimeheader($subject,"JIS","B"), mb_convert_encoding($content,"JIS"), "From:$email")を使用しています。

よろしくお願いします。

A 回答 (1件)

1)


<input type="file">しか方法がないですね。
Flashを使うという手法もあります。

複数のファイル選択は<input type="file">を複数書くかFlashを利用することになります。

一つのメール内で入力欄ごとに添付ファイルを区分けするのは、メールフォーマットを正しく行うことで可能です。
というか、区分けしないと送信できません。

2)
確認画面などをはさむ場合、実際のファイルデータは最初のフォーム送信時にファイルとしてサーバー上に保存します。

その後ページを移動する必要がある場合はセッション情報やファイル名の情報などを送ることになると思います。
FORMにセッションIDやファイル名などを送るだけで良いと思います。

ファイルの生データを送り続ける手法は見たことがありません。

3)添付ファイルが選択されているかどうかは、ファイル情報が送られているかどうかを見たり、ファイルを送るFlagを立てておけば良いのではないかと思います。

ファイルの種類のカウントはロジック上でカウントすればいいのではないでしょうか。

4)添付ファイルデータを電子メールで送信する場合、特に関数は選びません。
pearのMail.phpなどを使うと簡単かも知れません。
参考URLに書いておきます。

参考URL:http://it.cardinals-fan.com/archives/1
    • good
    • 0
この回答へのお礼

mizuno3さん
ご回答、ありがとうございました。

頑張ったのですが、私が初心者のため理解できませんでした。
一旦、掲示板を移動します。

お礼日時:2008/06/12 10:56

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!