【发布时间】:2018-02-09 20:11:23
【问题描述】:
我正在尝试将上传文件的详细信息插入到数据库表中,但出现以下错误:
致命错误:调用未定义的方法 Symfony\Component\Finder\SplFileInfo::getClientOriginalName()
如何在 Laravel5 中获取文件的 getClientOriginalName()、getClientOriginalName() 和 getFilename()?
下面是我正在使用的代码。
public function add()
{
$directory = public_path('xml');
$files = File::allFiles($directory);
foreach ($files as $file) {
$entry = new Xmlentry();
$entry->mime = $file->getClientMimeType();
$entry->original_filename = $file->getClientOriginalName();
$entry->filename = $file->getFilename().'.'.$extension;
$entry->save();
}
}
【问题讨论】:
-
dd($files) 输出什么?
-
打印
array:1 [ 0 => SplFileInfo {#164 -relativePath: "" -relativePathname: "145629930664170.xml" } -
我认为问题在于这些方法是
UploadedFile类的一部分,而不是SplFileInfo。但是,您可以使用以下方式将一个转换为另一个:new Symfony\Component\HttpFoundation\File\UploadedFile($files[0]->getFilename(),$files[0]->getPath()); -
如果目录中有数千个文件,如何将其放入上面的代码中?
-
我把我的回复作为答案,因为评论太混乱了:)
标签: php laravel laravel-5.1