3

phpMailer で添付ファイル付きのメールを送信する手順を教えてください。メール自体を送信するためのすべてのコードを準備しましたが、問題なく動作していますが、添付ファイルの送信方法がわかりませんでした。フォームがあり、POST でファイル入力から値を取得すると、フルパスではなくファイル名のみが表示されます。addAttachment を実行するには、ファイルのフルパスを取得する必要があると思いますよね? サーバーにファイルを保存する必要はありません。メールで送信するだけです。

4

1 に答える 1

4

私は解決策を見つけました: まず、ファイルを送信するためにフォームに enctype="multipart/form-data" を含める必要があるため、次のようにする必要があります。

<form method="POST"  action="send.php" enctype="multipart/form-data">
          inputs...
</form>

その後、次の方法でファイルを取得します。

if(is_uploaded_file($_FILES['myfile']['tmp_name'])) {
            $file = $_FILES['myfile'];
            }

次に、一時ディレクトリにあるこのファイルへのパスを準備し、新しいファイル名を特定します。

$attachment_path = $this->file['tmp_name'];

 //If need to give new name for the file:
  //$newfilename = pathinfo(basename($this->file['name']));
  //$attachment_name = "attachment_new_name.".$newfilename['extension'];

$attachment_name = basename($this->file['name']);

$mail->AddAttachment($attachment_path, $attachment_name);

終わり!ファイルが添付されました。

于 2012-08-05T13:45:57.980 に答える