Laravel 7 - Attach Multiple Files To Mailables

Viewed 77

How does one go about attaching multiple files to laravel 7 mailable? error :The path cannot be empty

I've searched the docs and also various search terms here on stack to no avail. Any help would be greatly appreciated.

myController and storage the file

public function imageSave($filex,$destination){

        $ext=$filex->getClientOriginalExtension();
        $name = $filex->getClientOriginalName();
        $mainFilename =$name.'_'.time().'.'.$ext;
        $filex->move($destination, $mainFilename);

        return $mainFilename;
}

public function store(Request $request)
{

    $this -> validertor( $request , [
        'rip' => 'required' ,
        'rip. *' => 'mimes: jpeg, png, jpg, gif, svg | max: 2048',
        'filep' => 'required' ,
        'filep. *' => 'mimes: jpeg, png, jpg, gif, svg | max: 2048',
        'fishea' => 'required' ,
        'fishea. *' => 'mimes: jpeg, png, jpg, gif, svg | max: 2048'
]);

        $data[] = [
            'filep' => $request->filep->getRealPath(),
            [
                'mime' => $request->filep->getClientMimeType(),
                'as' => $request->filep->getClientOriginalName()
            ],
            'rip' => $request->rip->getRealPath(),
            [
                'mime' => $request->rip->getClientMimeType(),
                'as' => $request->rip->getClientOriginalName()
            ],
            'fishea' => $request->fishea->getRealPath(),
            [
                'mime' => $request->fishea->getClientMimeType(),
                'as' => $request->fishea->getClientOriginalName()
            ],
        ];


    if ($request->hasFile('filep') && $request->hasFile('rip') && $request->hasFile('fishea')) {
        $filep = $this->imageSave($request->filep,'uploads/cin/');
        $rip = $this->imageSave($request->rip,'uploads/rip/');
        $fishea = $this->imageSave($request->fishea,'uploads/anthropo/');

        // Required validation
        $contact = new Contact();

        $contact->name = $request->name;
        $contact->adresse = $request->adresse;
        $contact->ville = $request->ville;
        $contact->num = $request->num;


        $contact->filep = $filep;
        $contact->rip   =  $rip;
        $contact->fishea = $fishea;
     }

    $admin_email = 'contact@admin_email.com';
    Mail::to($admin_email)->send(new SendMailP($data));
    session()->flash('success', 'Thank you! ');
    $contact ->save();
    return redirect('contact');
}

private function validertor(Request $request, array $array)
{
}

}

when ad dd( $data[]) in SendMai

     public function build()
    {
dd($this->data);
        $data = $this->data;
        $mail = $this->subject('[organisation]' . " " . " Sujet «" . "»")
       ->markdown('frontend.contact.mail.contact-form', compact('data'));
        // $attachments is an array with file paths of attachments
        foreach($data as $filePath => $fileParameters){
            $mail->attach($filePath, $fileParameters);
        }
        return $mail;
    }
}

dd($this->data) in Build Method:

array:1 [▼
  0 => array:6 [▼
    "filep" => "C:\wamp64\tmp\php71B9.tmp"
    0 => array:2 [▼
      "mime" => "image/png"
      "as" => "crm.png"
    ]
    "rip" => "C:\wamp64\tmp\php71BA.tmp"
    1 => array:2 [▼
      "mime" => "image/png"
      "as" => "logo-1.png"
    ]
    "fishea" => "C:\wamp64\tmp\php71BB.tmp"
    2 => array:2 [▼
      "mime" => "image/png"
      "as" => "smartphone-1.png"
    ]
  ]
]
0 Answers
Related