Laravel 电子邮件附件

Laravel Email Attachment

我认为这里有一个错误。

$file = $request->file('upload_cv');

$fileName = $file->getClientOriginalName();

$request->file('upload_cv')->move("cv/", $fileName);

$tambah->upload_cv = $fileName;

$tambah->save();

$email = DB::table('user')->where('email');

Mail::send('emails.welcome', array(
    'email'  =>  $request['email'],
    'HP'     =>  $request['kontak'],
    'nama'   =>  $request['nama'],
    'posisi' =>  $request['posisi'],
    'CV'     =>  $tambah->upload_cv = $fileName
), function ($message) use ($request, $tambah, $email, $file) 
{
    $message->from('MYEMAIL@gmail.com', $request->posisi);      
    $message->to('THEIREMAIL@gmail.com')
            ->subject('Lamaran Baru')
            ->cc('SOMEPERSON@yahoo.com.sg')
            ->attach($file)
            ->replyTo($request->email);

    $message->getSwiftMessage();
});

return redirect()->to('index');

错误发生在我点击提交时,它加载永远停留在当前表单上。如果我删除 ->attach($file) 它将被重定向到索引,这意味着它有效。但是如果我把 ->attach($file) 它总是加载并且仍然在当前页面上。

请说明是什么问题,之前谢谢了。

attach 方法需要文件路径,但您直接从请求传递 UploadedFile 实例。而是使用文件的路径,以便 laravel 可以找到并将其附加到您的邮件中。

您必须传递文件的完整路径。例如,如果您要在 cv 文件夹内的项目根目录中上传文件。例如

  • 项目根目录
    • 简历

那你可以这样写

->attach( base_path( "cv/" . $file->getClientOriginalName() ) );