图像上传错误laravel 5.6

时间:2018-07-12 11:05:42

标签: php laravel

我对在Laravel 5.6中上传图片感到困惑。文字输入正常,但图片未上传。

对于测试路线和输入字段,我放置了一个演示回显来检索文本列数据,并且显示效果非常好。但是图片没有上传...

但是我在上一个项目中使用了相同的代码来上传图像,这很好。.这次不起作用。

控制器-

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Validator;

class UserController extends Controller
{

public function insertChildren(Request $request){
    echo $request->input('firstName');
    //this echo doing well

    if ($request->hasFile('image')) {
        $imageExtention=$request->file('image')->getClientOriginalExtension();
        $randomString=substr(str_shuffle(str_repeat("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", 10)), 0, 10);
        $modifiedImageName=$randomString.'.'.$imageExtention;
        $productImage->move(public_path('img'),$modifiedImageName);
      }
}

表格

<form role="form" action="{{url('/children/add')}}" method="post">
        @csrf 

        <div class="form-group ml-4 mr-4">

            <div class="row">

                <div class="col-6">
                    <label for="name">First Name</label>
                    <input value="{{ old('firstName') }}" name="firstName" type="text" class="form-control" id="first" placeholder="First Name">
                </div>

                <div class="col-6">
                    <label for="name">Last Name</label>
                    <input value="{{ old('lastName') }}" name="lastName" type="text" class="form-control" id="last" placeholder="Last Name">
                </div>
            </div>
        </div>



        <div class="form-group ml-4 mr-4">
            <label for="gender">gender</label>
            <br>
            <input value="{{ old('gender') }}" type="text" name="gender" class="form-control" placeholder="Boy or Girl or Other">
        </div>


        <div class="form-group ml-4 mr-4">
            <label for="Birthday">Birthday</label>
            <input name="birthday" type="date" class="form-control" id="birthday">
        </div>


        <div class="form-group ml-4 mr-4">
            <label for="image">Profile Image</label>
            <input type="file" name="image" class="form-control" id="image">
        </div>

        <button type="submit" style="background-color:#2DAE60;" class="btn">
            <i class="fa fa-plus"></i> ADD </button>
    </form>

1 个答案:

答案 0 :(得分:4)

您在表单上缺少enctype属性:

<form role="form" action="{{url('/children/add')}}" method="post" enctype="multipart/form-data">

multipart/form-data允许将整个文件包含在请求数据中。对于编写表单,这就是您真正需要知道的全部内容。