我正在尝试将上传文件的详细信息插入数据库表,但出现以下错误:
致命错误:调用未定义的方法 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();
}
}
我有点困惑为什么你在那里getClientOriginalName()
,因为这针对的是已经上传的临时文件名,但File::allFiles()
是从已经具有固定名称的目录中获取文件。
除了我上面的评论之外,我还想补充一点,您可以使用SplFileInfo
方法。
我冒昧地从代码中删除了原始文件名,并更正了变量 $extension
缺少赋值语句的问题。
要回答您的问题:
public function add()
{
$directory = public_path('xml');
$files = File::allFiles($directory);
foreach ($files as $file) {
$entry = new Xmlentry();
$entry->mime = $file->getType();
$entry->filename = $file->getFilename(). '.' . $file->getExtension();
$entry->save();
}
}