拉拉维尔 4 上传图片表格

2022-08-30 21:31:21

我正在尝试制作一个允许上传文件并将其存储在应用程序的公共/上传文件夹中的表单。

我的表格是:

<form action="/image/save" method="post">
<input name="image" type="file" />
<input type="submit" value="Save"/>
</form>

和控制器:

public function save(){
$file = Input::file('image');
$destinationPath = 'upload/';
$filename = $file->getClientOriginalName();
Input::file('image')->move($destinationPath, $filename);

但是当我运行它时,我得到以下错误:调用非对象上的成员函数getClientOriginalName()


答案 1

您需要在表单上启用文件输入。(文档)

在Laravel中,您可以使用:

Form::open('image/save', array('files'=> true))

<form action="/images/save" method="post" enctype="multipart/form-data">

否则,您从文件输入中接收的只是字符串形式的文件名。


答案 2

如果您不使用 Blade 生成表单,如下所示

{{ Form::open(array('url' => 'foo/bar', 'files' => true)) }}

只需将此参数添加到表单标记中

enctype="multipart/form-data"

推荐