Laravel 5:上传图片以通过电子邮件发送

时间:2015-08-01 01:44:33

标签: php laravel laravel-5

我之前从未将以表格形式上传的图片发送到电子邮件中,所以我遇到了一些麻烦。

我知道这行代码:$request->file('image')->move('/', $fileName);因为我将其移动到哪里而无法做任何事情,但就我能读到这些而言Unable to write in the "/" directory <div class="form-group"> {!! Form::file('image') !!} </div> <p> Image: {{ $image }} </p> <?php namespace App\Http\Requests; use App\Http\Requests\Request; class ContactFormRequest extends Request { public function authorize() { return true; } public function rules() { return [ 'name' => 'required', 'height' => 'required', 'age' => 'required', 'weight' => 'required', 'gender' => 'required', 'email' => 'required|email', 'image' => 'required|mimes:jpeg,jpg,png|max:200px' ]; } } 3}}。事实上,它吐出了这个错误:

<?php namespace App\Http\Controllers; use App\Http\Requests\ContactFormRequest; class AboutController extends Controller { public function create() { return view('pages.index'); } public function store(ContactFormRequest $request) { $fileName = "Image"; $request->file('image')->move('/', $fileName); \Mail::send('emails.contact', array( 'name' => $request->get('name'), 'height' => $request->get('height'), 'age' => $request->get('age'), 'weight' => $request->get('weight'), 'gender' => $request->get('gender'), 'email' => $request->get('email'), 'image' => $request->get('image') ), function($message) { $message->from('example@example.com'); $message->to('example@example.com', 'Admin')->subject('Example Text'); }); return \Redirect::route('/') ->with('message', 'Your application is on its way!'); } }

如果我要删除上面的代码并提交我的表单,一切正常,但图片字段显示为空。这引出了我的问题:

我将图片移动到哪里,以及如何从该位置获取图片,以便可以在发送的电子邮件中使用它,而不是显示空白点,就像没有上传任何内容一样? < / p>

以下是我的档案......

index.blade.php(仅限表单的图像部分):

{{1}}

电子邮件/ contact.blade.php(仅限图片部分):

{{1}}

请求/ ContactFormRequest.php:

{{1}}

认证/ AboutController.php:

{{1}}

1 个答案:

答案 0 :(得分:1)

如果您想将图片附加到邮件中,请使用以下命令:

Mail::send('emails.contact',
        array(
            'name'   => $request->get('name'),
            'height' => $request->get('height'),
            'age'    => $request->get('age'),
            'weight' => $request->get('weight'),
            'gender' => $request->get('gender'),
            'email'  => $request->get('email'),
            'image'  => $filename
        ), function($message) use($filename)
    {
        $message->from('example@example.com');
        $message->to('example@example.com', 'Admin')->subject('Example Text');
       $message->attach('/'.$filename);
    });

通常我这样做是为了上传图片。

//Request File
$file = $request->file('image');

//Destination
 $destination = public_path() . '/img/';

//Define the name
$name= "image";

//Get file extension 
$extension = $file->getClientOriginalExtension();

//join the name you set with the extension
$filename = $name . '.' . $extension;

//after that move the file to the directory
$file->move($destination, $filename);

如果要显示图像,请不要忘记使用(而不是返回其名称)

<img src="foo/bar" />