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

MCG*_*Bra 2 php file laravel laravel-5

我正在尝试上传图像。

\n\n

这是我的 html 表单:

\n\n

\r\n
\r\n
<form class="form" action="{{ URL::to(\'/alunos/cadastrar\') }}" method="post" enctype=\xe2\x80\x9dmultipart/form-data\xe2\x80\x9d>\r\n    <label for="nome"  >Nome</label>\r\n    <input  type="text" name="nome" placeholder="nome"><br><br>\r\n\r\n    <label for="serie"  >S\xc3\xa9rie</label>\r\n    <input  type="text" name="serie" placeholder="serie"><br><br>\r\n\r\n    <label for="escola"  >Escola</label>\r\n    <input  type="text" name=escola placeholder="escola"><br><br>\r\n\r\n    <label for="turno"  >Turno</label>\r\n    <input  type="text" name=turno placeholder="Turno"><br><br>\r\n\r\n    <label for="documento"  >Documento</label>\r\n    <input  type="text" name=documento placeholder="documento"><br><br>\r\n\r\n    <label for="residencia"  >Reside em</label>\r\n    <input  type="text" name=residencia placeholder="Reside em"><br><br>\r\n\r\n    <label for="rota"  >Rota</label>\r\n    <input  type="text" name=rota placeholder="rota"><br><br>\r\n\r\n    <label for="data_nasc"  >Data de Nascimento</label>\r\n    <input  type="text" name=data_nasc placeholder="Data de Nascimnento"><br><br>\r\n\r\n    <label for="mae"  >M\xc3\xa3e</label>\r\n    <input  type="text" name=mae placeholder="M\xc3\xa3e"><br><br>\r\n\r\n    <label for="pai"  >Pai</label>\r\n    <input  type="text" name=pai placeholder="Pai"><br><br>\r\n\r\n    <label for="photo"  >Foto</label>\r\n    <input type="file" name="photo" id="photo">\r\n\r\n    {{ csrf_field() }}\r\n\r\n    <br>\r\n\r\n    <input type="submit" value="Registrar!">\r\n</form>
Run Code Online (Sandbox Code Playgroud)\r\n
\r\n
\r\n

\n\n

这是控制器方法:

\n\n
public function submit(Request $request)\n{\n    if ($request->hasFile(\'photo\')) {\n        echo "OK";\n    }else{\n        echo "error";\n    }\n    return redirect(\'/\');\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

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

\n\n
array:12 [\xe2\x96\xbc\n  "nome" => null\n  "serie" => null\n  "escola" => null\n  "turno" => null\n  "documento" => null\n  "residencia" => null\n  "rota" => null\n  "data_nasc" => null\n  "mae" => null\n  "pai" => null\n  "photo" => "23722217_17536056.jpg"\n  "_token" => "TPYBg3d8f3CdiQQnMbimprb5HQPkxqG5MSLdAUEa"\n]\n
Run Code Online (Sandbox Code Playgroud)\n\n

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

\n\n

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

\n\n
namespace App\\Http\\Controllers;\nuse Illuminate\\Http\\Request;\nuse App\\Quotation;\nuse Datatables;\nuse App\\aluno;\nuse View;\nuse PDF;\nuse DB;\n
Run Code Online (Sandbox Code Playgroud)\n\n

我怎样才能使这个上传工作?

\n

dmo*_*ors 5

你的代码看起来是正确的。

\n\n

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

\n\n

尝试改变:

\n\n
enctype=\xe2\x80\x9dmultipart/form-data\xe2\x80\x9d\n
Run Code Online (Sandbox Code Playgroud)\n\n

\n\n
enctype="multipart/form-data"\n
Run Code Online (Sandbox Code Playgroud)\n