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