不能使用Illuminate \ Http \ UploadedFile类型的对象作为数组

时间:2017-12-02 16:27:13

标签: laravel

我尝试发送附件文件,但我得到了

  

不能使用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;
    }

1 个答案:

答案 0 :(得分:3)

这是因为$request->file('uploads')会返回一个对象,而您正尝试使用foreach

进行迭代

如果您想上传多个文件,请务必执行以下操作:

<input type="file" name="uploads[]" multiple />

迭代上传的文件:

foreach ($request->uploads as $file)