I´m traying to send file or files with function Mail in Laravel. And i´m a function to upload this file or files into a folder. My problem it´s i can´t to do that this file/s have send in one mail.
I have a <input type="file" multiple/>
and with jquery i´m capturing his contain and it´s send to my controller where i´m doing a var_dump to show it. All contain it´s correct:
array(2) { [0]=> object(IlluminateHttpUploadedFile)#262 (7) { ["test":"SymfonyComponentHttpFoundationFileUploadedFile":private]=> bool(false) ["originalName":"SymfonyComponentHttpFoundationFileUploadedFile":private]=> string(11) "Captura.PNG" ["mimeType":"SymfonyComponentHttpFoundationFileUploadedFile":private]=> string(9) "image/png" ["error":"SymfonyComponentHttpFoundationFileUploadedFile":private]=> int(0) ["hashName":protected]=> NULL ["pathName":"SplFileInfo":private]=> string(24) "C:xampptmpphpA1D4.tmp" ["fileName":"SplFileInfo":private]=> string(11) "phpA1D4.tmp" } [1]=> object(IlluminateHttpUploadedFile)#266 (7) { ["test":"SymfonyComponentHttpFoundationFileUploadedFile":private]=> bool(false) ["originalName":"SymfonyComponentHttpFoundationFileUploadedFile":private]=> string(12) "Captura3.PNG" ["mimeType":"SymfonyComponentHttpFoundationFileUploadedFile":private]=> string(9) "image/png" ["error":"SymfonyComponentHttpFoundationFileUploadedFile":private]=> int(0) ["hashName":protected]=> NULL ["pathName":"SplFileInfo":private]=> string(24) "C:xampptmpphpA1D5.tmp" ["fileName":"SplFileInfo":private]=> string(11) "phpA1D5.tmp" } } array(2) { [0]=> string(11) "Captura.PNG" [1]=> string(12) "Captura3.PNG" }
But i can´t attach into email:
Mail::send('email', $datos, function($msj) use($subject, $emailUnico, $adjunto){ $msj->from("administrador@incidencias.integra.com","Incidencias"); $msj->subject($subject); $msj->to($emailUnico); for( $i=0; $i<count($adjunto); $i++ ){ $msj->attach($adjunto[$i], [ 'as' => $adjunto[$i], // If you want you can chnage original name to custom name 'mime' => 'application/pdf' ]); }
this is my function where i´m sending my email and attach mys file/s.
with this, i´m create a array with names and files from request:
for( $i=0; $i<count($request->file('adjunto')); $i++ ){ $adjunto[] = $request->file('adjunto')[$i]; $nombreAdjunto[] = $request->file('adjunto')[$i]->getClientOriginalName(); } echo var_dump($adjunto); echo var_dump($nombreAdjunto); exit();
how i said before, all content it´s correct before i exposed my web browser console result.
i apreciatte all help with this problem.
Advertisement
Answer
I solve my problem. Only i would have to do this:
Mail::send('email', $datos, function($msj) use($subject, $emailUnico, $adjunto){ $msj->from("administrador@incidencias.integra.com","Incidencias"); $msj->subject($subject); $msj->to($emailUnico); for( $i=0; $i<count($adjunto); $i++ ){ $msj->attach(public_path()."/subidas/".$adjunto[$i]->getClientOriginalName(), [ 'as' => $adjunto[$i]->getClientOriginalName(), // If you want you can chnage original name to custom name 'mime' => 'application/pdf' ]); } });
add public_folder and in “as” add originalName