从表单发送文件

时间:2015-07-21 11:08:59

标签: php laravel-5.1

我需要从联系表单发送文件(pdf)到电子邮件。

现在我可以发送一个空的pdf文件。

这是我控制器中的代码。谢谢!

_F23_C456

_F345_C1

3 个答案:

答案 0 :(得分:2)

要附加文件,您可以使用以下选项:

// Attach a file from location
$message->attach($pathToFile, array $options = []);

// Attach a file from a raw $data string...
$message->attachData($data, $name, array $options = []);

请参阅以下链接: Sending a file via form to email with Laravel (Localhost)

答案 1 :(得分:1)

现在它正常运作。

我改变了

$message->attachData($data['document'], $data['document']->getClientOriginalName());

通过

$message->attach( $data['document']->getRealPath(), [
                            'as' => $data['document']->getClientOriginalName(), 
                            'mime' => $data['document']->getMimeType()
                  ]);

答案 2 :(得分:-1)

您使用的是PHPMailer吗?

使用PHPMailer:

  • 从此处下载PHPMailer脚本:http://github.com/PHPMailer/PHPMailer

  • 提取存档并将脚本文件夹复制到方便的位置 放在你的项目中。

  • 包含主脚本文件 - require_once('路径/到/文件/ class.phpmailer.php&#39);

设置标题:

 $header .= "Content-Type: application/octet-stream; name=\"".$filename."\"\r\n"; 
 $header .= "Content-Transfer-Encoding: base64\r\n";
 $header .= "Content-Disposition: attachment; filename=\"".$filename."\"\r\n\r\n";

另外:PHPMailer,提供此功能,

$email = new PHPMailer();
$file_to_attach = 'filepath';
$email->AddAttachment($file_to_attach , 'filename + file extension');
$email->Send();