使用文件上传laravel进行表单更新

问题描述 投票:1回答:2

在更新表单和输入文件时,我遇到了一些问题。这是我正在使用的。

我在laravel 5.1中有一个表单,它有一个post方法和一个隐藏的'Patch'方法。这样可以更新表单中的字段。但是,它介绍时:

<input type="file" id="profile_picture" name="image_url" />

进入表格,我得到一个:

MethodNotAllowedHttpException in RouteCollection.php line 218:

laravel错误。我试过改变了

 <input type='hidden' name='_method' value='PATCH'>

PUT,它仍然不喜欢它。

我的表单看起来像这样:

<form action='{{url("profiles/$user->id")}}' method="post" class="form-horizontal" enctype="multipart/form-data">

route资源如下所示:

Route::resource('profiles', 'ProfilesController');

我无法弄清楚我在这里缺少什么...非常感谢任何帮助。

php laravel laravel-5.1
2个回答
0
投票

我相信它与您在“action”参数中输入的确切路径有关,该参数与配置文件控制器的更新方法相匹配。

尝试改变

action'{{url("profiles/$user->id")}}'

action='{{ route("profiles.update", $user->id) }}'

此外,您可以使用Laravel Collective HTML package来简单地打开和关闭表单。


0
投票

此外,对于POST请求类型,您需要将CSRF令牌与表单数据一起发送。如果您在视图中使用了laravel blade模板,则可以使用

{{ csrf_field() }}

转化为

<input type="hidden" name="_token" value={{ csrf_token() }}

请参考documentation

© www.soinside.com 2019 - 2024. All rights reserved.