为什么Laravel 5邮件,我附上了一个.tmp文件?

时间:2018-05-24 14:40:35

标签: php laravel-5 mailer

我正在尝试将文件附加到从表单发送的电子邮件中,问题是该文件即将发送给我.tmp

我的控制器

public function choiceAnalyst(Request $request){

    $userSelect = $request->input('user');
    $data = User::where('id', '=', $userSelect)->first();
    $data->attach = $request->file('document')->getRealPath();

    Mail::to('eaquino@spi.com.ve')->send(new AnalystMonth($data));

    return redirect()->route('home', ['message' => 'Correo enviado correctamente']);
}

我的班级

class AnalystMonth extends Mailable
{
    use Queueable, SerializesModels;

    public $user;

    /**
     * Create a new message instance.
     *
     * @return void
     */
    public function __construct(User $user)
    {
        $this->user = $user;

    }

    /**
     * Build the message.
     *
     * @return $this
     */
    public function build()
    {
        return $this->view('mails.analystMonth')->attach($this->user->attach);
    }
}

我认为当我拿起文件时,我通过.tmp方法得到了getRealPath(),但我不确定。如何让我的文件达到.tmp扩展名?

1 个答案:

答案 0 :(得分:2)

您收到的是.tmp个文件,因为在将该文件附加到您的邮件之前,该文件从未上传到服务器。

$data->attach = storage_path('app/public/' . $request->file('document')->store('folder', 'public'));

您可以使用Storage facade获得相同的结果:

$data->attach = Storage::disk('public')->path($request->file('document')->store('folder', 'public'));