猿问

getClientOriginalName() on null 和 $request-

我正在将一些文本和图像上传到数据库。我收到一个错误:


在 null 上调用成员函数 getClientOriginalName()


使用以下代码时:


$file = $request->file('image')->getClientOriginalName(); // 'image' is name in html form.

但$file = $request->input('image');得到图像名称。


(也if($request->hasFile('image'))不起作用(它返回 FALSE)。)


在我的 html 中,


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

<input type="text" name="title">

<input type="file" name="image">

</form>

在我的控制器中,


public function upload(Request $request) {


$title = $request->input('title');


if($request->hasFile('image')) {


$file = $request->file('image')->getClientOriginalName();

$image->move(public_path('images'), $file);


$post = new Post();

$is_success = $post->addPost($title, $file);

}


}


犯罪嫌疑人X
浏览 265回答 2
2回答

精慕HU

使用代替那个$request->file('upload_file');var_dump($request->file('upload_file'));

三国纷争

当您使用 $request->file() 方法访问上传的文件时,它会返回一个 php 原生 SplFileInfo 类的实例。通过查看 php 手册,您可以看到该类中有哪些可用的方法,请在此处查看:https&nbsp;:&nbsp;//www.php.net/manual/en/class.splfileinfo.php另外,看看 Laravel 的文档:https&nbsp;://laravel.com/docs/5.8/requests#files进一步扩展答案:如果您需要对 SplFileInfo 无法执行的文件执行某些操作,您可以通过 Storage Facade 检索新上传的文件,它构建在 Flysystem 包之上,可为您提供大量选项用于处理文件。首先阅读这里的文件存储 Larave'ls 文档:https&nbsp;://laravel.com/docs/5.8/filesystem#retrieving-files
随时随地看视频慕课网APP
我要回答