Laravel文件上传只是将文件名发送到控制器

时间:2018-08-03 22:30:22

标签: php laravel file laravel-5

我正在尝试上传图片。

这是我的html表单:

<form class="form" action="{{ URL::to('/alunos/cadastrar') }}" method="post" enctype=”multipart/form-data”>
    <label for="nome"  >Nome</label>
    <input  type="text" name="nome" placeholder="nome"><br><br>

    <label for="serie"  >Série</label>
    <input  type="text" name="serie" placeholder="serie"><br><br>

    <label for="escola"  >Escola</label>
    <input  type="text" name=escola placeholder="escola"><br><br>

    <label for="turno"  >Turno</label>
    <input  type="text" name=turno placeholder="Turno"><br><br>

    <label for="documento"  >Documento</label>
    <input  type="text" name=documento placeholder="documento"><br><br>

    <label for="residencia"  >Reside em</label>
    <input  type="text" name=residencia placeholder="Reside em"><br><br>

    <label for="rota"  >Rota</label>
    <input  type="text" name=rota placeholder="rota"><br><br>

    <label for="data_nasc"  >Data de Nascimento</label>
    <input  type="text" name=data_nasc placeholder="Data de Nascimnento"><br><br>

    <label for="mae"  >Mãe</label>
    <input  type="text" name=mae placeholder="Mãe"><br><br>

    <label for="pai"  >Pai</label>
    <input  type="text" name=pai placeholder="Pai"><br><br>

    <label for="photo"  >Foto</label>
    <input type="file" name="photo" id="photo">

    {{ csrf_field() }}

    <br>

    <input type="submit" value="Registrar!">
</form>

这是控制器方法:

public function submit(Request $request)
{
    if ($request->hasFile('photo')) {
        echo "OK";
    }else{
        echo "error";
    }
    return redirect('/');
}

每次运行时,都会收到错误消息。 dd(request()-> all())给出以下内容。

array:12 [▼
  "nome" => null
  "serie" => null
  "escola" => null
  "turno" => null
  "documento" => null
  "residencia" => null
  "rota" => null
  "data_nasc" => null
  "mae" => null
  "pai" => null
  "photo" => "23722217_17536056.jpg"
  "_token" => "TPYBg3d8f3CdiQQnMbimprb5HQPkxqG5MSLdAUEa"
]

“照片”字段实际上没有文件,只有文件名。

我正在使用MAMP的MacBook Pro。在控制器代码的顶部,我有以下内容:

namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Quotation;
use Datatables;
use App\aluno;
use View;
use PDF;
use DB;

如何使此上传有效?

1 个答案:

答案 0 :(得分:1)

您的代码似乎正确。

唯一可能成为问题的是,您的enctype具有不同类型的引号。

尝试更改:

enctype=”multipart/form-data”

收件人

enctype="multipart/form-data"