Newbie to Laravel so be kind lol
My config for mail.php is correct and emails are being received successfully for text inputs to gmail, but not sure exactly how to complete the task for files. I would appreciate some assistance or reference links.
Thanks in advance!!
Code in routes.php
Route::get('/', function()
{
return View::make('form');
});
Route::post('/form', function()
{
$data = ['firstname' => Input::get('firstname'), 'username' => Input::get('username'), 'email' => Input::get('email'), 'resume' => Input::get('resume') ];
$rules = array(
'username' => 'Required|Min:7',
'email' => 'Required|Email',
'firstname' => 'Required',
'resume' => 'Required'
);
$validation = Validator::make(Input::all(), $rules);
if ($validation->fails())
{
// Validation has failed.
return Redirect::to('/')->withInput()->withErrors($validation);
}
else {
Mail::send('emails.welcome', $data, function($message)
{
$message->to('[email protected]');
$message->subject('Welcome to Laravel');
$message->from('[email protected]');
});
return Redirect::to('/')->withInput()->with('success', 'Thank you for your submission.');
}
//
});
Code in form.blade.php
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Form</title>
</head>
<body>
@if(Session::has('success'))
<div class="alert-box success">
<h2>{{ Session::get('success') }}</h2>
</div>
@endif
{{ Form::open(array('url' => '/form')) }}
<p>{{ Form::label('email', 'E-Mail Address');}} <br>{{ Form::email('email', '[email protected]');}}</p>
{{ $errors->first('email') }}
<p>{{ Form::label('username', 'Username');}} <br> {{Form::text('username');}}</p>
{{ $errors->first('username') }}
<p>{{ Form::label('firstname', 'First Name');}} <br> {{Form::text('firstname');}}</p>
{{ $errors->first('firstname') }}
<p>{{ Form::file('resume'); }}</p>
<p>{{Form::submit('Send Details');}}</p>
{{ Form::close() }}
</body>
</html>
First off, be sure to allow your file to accept file uploads:
{{ Form::open(array('url' => '/form', 'files' => true)) }}
After that, you can do something along the lines of this:
$input = Input::all();
Mail::send('emails.welcome', $data, function($message) use ($input)
{
$message->to('[email protected]');
$message->subject('Welcome to Laravel');
$message->from('[email protected]');
$message->attach($input['resume']->getRealPath(), array(
'as' => 'resume.' . $input['resume']->getClientOriginalExtension(),
'mime' => $input['resume']->getMimeType())
);
});
Documentation: http://laravel.com/docs/requests#files and http://laravel.com/docs/mail#basic-usage
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With