【问题标题】:How can i get the correct file extension in laravel 5.4如何在 laravel 5.4 中获得正确的文件扩展名
【发布时间】:2017-09-01 03:11:46
【问题描述】:

当我在 laravel 5.4 中上传 csv 文件时,我得到 'txt' 作为扩展名。我有什么遗漏吗?

查看

{!! Form::open(['url' => 'transaction/save', 'files' => true]) !!}

{!! Form::file('batch'); !!}

{!! Form::submit('Upload') !!}

{!! Form::close() !!}

控制器

public function saveBatch(Request $request)
 {
        $file = $request->batch;
        $path = $request->batch->extension();

        dd($path);
 }

【问题讨论】:

  • 这是一个错字,不是错误。

标签: php laravel file-upload laravel-5.4


【解决方案1】:

您需要先移动文件,否则该文件实际上是一个没有扩展名的临时文件。你也可以使用:

 $request->batch->getClientOriginalExtension();

这将返回原始文件名的扩展名。更多方法在:http://api.symfony.com/3.0/Symfony/Component/HttpFoundation/File/UploadedFile.html

【讨论】:

  • getClientOriginalExtension() 函数给了我想要的东西。谢谢
【解决方案2】:

获取上传文件扩展名的最佳方法:(如果文件输入名称是文件)

$extension = $request->file->extension();

【讨论】:

  • 这就是我正在做的。我得到了图像和 excel 文件等文件的正确扩展名,但是当我尝试上传 csv 文件时,它会将其更改为 txt
  • $request->file->extension() 方法返回 Symfony 猜测的扩展基于 MIME 类型。
猜你喜欢
  • 2017-11-15
  • 1970-01-01
  • 2013-09-11
  • 2011-08-19
  • 1970-01-01
  • 2015-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多