繁体   English   中英

如何在Laravel 5.1中将文件详细信息保存到DB中

[英]How to save file details into DB in Laravel 5.1

我试图将上载文件的详细信息插入数据库表,但出现以下错误:

致命错误:调用未定义的方法Symfony \\ Component \\ Finder \\ SplFileInfo :: getClientOriginalName()

我如何获取getFilename()中文件的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();
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM