为了账号安全,请及时绑定邮箱和手机立即绑定

getClientOriginalName() on null 和 $request-

getClientOriginalName() on null 和 $request-

PHP
犯罪嫌疑人X 2021-11-26 15:04:05
我正在将一些文本和图像上传到数据库。我收到一个错误:在 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'));


查看完整回答
反对 回复 2021-11-26
?
三国纷争

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


查看完整回答
反对 回复 2021-11-26
  • 2 回答
  • 0 关注
  • 264 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信