我正在将一些文本和图像上传到数据库。我收到一个错误:在 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);}}
2 回答
精慕HU
TA贡献1845条经验 获得超8个赞
使用代替那个
$request->file('upload_file');
var_dump($request->file('upload_file'));
三国纷争
TA贡献1804条经验 获得超7个赞
当您使用 $request->file() 方法访问上传的文件时,它会返回一个 php 原生 SplFileInfo 类的实例。通过查看 php 手册,您可以看到该类中有哪些可用的方法,请在此处查看:https : //www.php.net/manual/en/class.splfileinfo.php
另外,看看 Laravel 的文档:https ://laravel.com/docs/5.8/requests#files
进一步扩展答案:如果您需要对 SplFileInfo 无法执行的文件执行某些操作,您可以通过 Storage Facade 检索新上传的文件,它构建在 Flysystem 包之上,可为您提供大量选项用于处理文件。首先阅读这里的文件存储 Larave'ls 文档:https ://laravel.com/docs/5.8/filesystem#retrieving-files
- 2 回答
- 0 关注
- 264 浏览
添加回答
举报
0/150
提交
取消