Форма Laravel с вложенным файлом

Я пытаюсь получить форму с приложением на этой странице для отправки электронной почты. Я не уверен, что мне здесь не хватает, я использовал -> attach (), метод, но, похоже, моя реализация может быть неправильной,

Пожалуйста, обратите внимание: я хочу, чтобы файл был любого типа, как вы можете видеть в валидаторе, затем файл сохраняется, а копия прикрепляется и отправляется на электронную почту в to ()

Это мой контроллер:

<?php

namespace App\Http\Controllers;

use Mail;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Facades\File;
use App\Mail\ClientUploadEmail;

class FileUploadController extends Controller
{
/*
* Displays a listing of the resource
*
*@return \Illuminate\Http\Response
*/
public function fileUpload()
{
return view('home');
}

/*
* Displays a listing of the resource
*
*@return \Illuminate\Http\Response
*/

public function fileUploadPost(Request $request)
{
request() -> validate([
'file' => 'required|file|mimes:jpg,jpeg,png,doc,pdf,svg,gif|max:2048',
]);

$fileName = time().'.'.request()->file->getClientOriginalExtension();
request()->file->move(public_path('client_uploads'), $fileName);$clientupload = [];

$clientupload['name'] = $request -> get('name');
$clientupload['phone'] = $request -> get('phone');
$clientupload['email'] = $request -> get('email');
$clientupload['subject'] = $request -> get('subject');
$clientupload['message'] = $request -> get('message');
$clientupload['file'] = $fileName;

//send mail logic here
Mail::to('example@mail.com')
->send(new ClientUploadEmail($clientupload));

flash('Your Message has been sent! If you do not hear back from us within 24hrs, please call: 604 - 503 - 4161') -> success();

return back();

}

}

Это мой шаблон для письма, которое будет отправлено, поэтому я также попытался внедрить встроенные вложения в соответствии с документацией Laravel, но безуспешно

<div class="container">
<h4>Hi,</h4>
<p>A J. Taylor Registered user has sent you a message with an uploaded file.</p>
<div class="row">
<div class="col-md-10">
<ul class="list-group">
<li class="list-group-item">Name: {{ $clientupload['name'] }}</li>
<li class="list-group-item">E-mail: {{ $clientupload['email'] }}</li>
<li class="list-group-item">Tel: {{ $clientupload['phone'] }}</li>
<li class="list-group-item">E-mail: {{ $clientupload['subject'] }}</li>
<img src="{{ $message->embed($pathToFile) }}">
</ul>

</div>
</div>
</div>

И, наконец, это содержит мой класс загрузки электронной почты с функцией сборки

<?php

namespace App\Mail;

use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;

class ClientUploadEmail extends Mailable
{
use Queueable, SerializesModels;

/**
* Create a new message instance.
*
* @return void
*/

public $clientupload;
public function __construct($clientupload)
{
$this -> clientupload = $clientupload;
}

/**
* Build the message.
*
* @return $this
*/
public function build()
{
return $this
->to('example@mail.com')
->subject('Message with Upload from Website Client')

->view('clientupload.clientfileupload');
//I tried using this but don't know right way to, so when I do it without /$fileName, it shows a time out (I don't want to increase the  default timeout as well)

// ->attach('/client_uploads/$fileName');
}
}

Я буду очень благодарен за помощь. Спасибо

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector