我尝试发送附件文件,但我得到了
不能使用Illuminate \ Http \ UploadedFile类型的对象作为数组
我使用laravel 5.4
有人知道我为什么会收到这个错误?
(我没有将文件上传到目录中,我只想发送控制器上请求的文件)
希望有人可以提供帮助,最好的问候:)
这是我的控制器:
public function postSendMassive(Request $request){
$files = $request->file('uploads');
$emails = Structure::where('type_structure_id', 4)->pluck('adresse_email_structure');
$subject = $request->subject;
$bodyMessage = $request->texte;
foreach($files as $file) {
$files[] = [
'file' => $file->getRealPath(),
'options' => [
'mime' => $file->getClientMimeType(),
'as' => $file->getClientOriginalName()
],
];
}
Mail::to('test@gmaIL.com')->send(new MassiveEmail($subject , $bodyMessage , $files));
return back()->with('status', "Email envoyé");
}
这是我的构建邮件:
public function build()
{
$subject = $this->subject;
$bodyMessage = $this->bodyMessage;
$files = $this->files;
$email = $this->markdown('email.MassiveMail',compact('bodyMessage'))
->subject($subject.'-'.'FFRXIII Licences & Compétitions');
foreach($this->files as $file) {
$email->attach($file['file'],$file['options']);
}
return $email;
}
答案 0 :(得分:3)
这是因为$request->file('uploads')
会返回一个对象,而您正尝试使用foreach
如果您想上传多个文件,请务必执行以下操作:
<input type="file" name="uploads[]" multiple />
迭代上传的文件:
foreach ($request->uploads as $file)