Monday 27 May 2019

Vue && Laravel file upload && send email

Vue:

            // Add headers
            let headers = {
                'Accept':       'application/json',
                'Authorization': 'Bearer ' + <your_token>,
                'Content-type' : 'multipart/form-data; charset=utf-8; boundary=' + Math.random().toString().substr(2)
            };

            // Make form data
            let params = new FormData();


            for (let file of this.upload_data.files) {
                params.append('files[]'file);
            }


            // Post request
            this.$http.post(<your_route>params, {headers: headers})
 .then(response => {....},error => {...});


Laravel:
use Illuminate\Support\Facades\Mail;

        // Dont question this is Laravel's way to do it
        $files = Input::file('files');

        if ( empty($files) ) {
            return response()->json([
                'status' => 'error',
                'errors' => 'No files uploaded'
            ], 422);            
        }

 

        foreach ($files as $file) {
$file->getClientOriginalName() ...}

// Send HTML email

use Illuminate\Support\Facades\Mail;
                // HTML
                Mail::send(array(), array(), function ($messageuse ($email_content, <your_destional_email>) {
                  $message->to(<your_destional_email>)
                    ->subject($email_content['subject'])
                    ->from('your_from_email_address','your_title')
                    ->setBody($email_content['message'. '</li>''text/html');
                });




// Send text email

                // Send email to shared user
                Mail::raw($email_content['message'], function ($messageuse ($email_content, <your_destional_email>) {
                    $message->from('your_from_email_address','your_title');
                    $message->subject($email_content['subject']);
                    $message->to(<your_destional_email>);
                });

No comments:

Post a Comment