UploadedFile 的 extension() 方法对 .ob j 后缀的文件会返回 .txt

1. 运行环境

homestead 集成环境

1). 当前使用的 Laravel 版本?

Laravel Framework 8.83.15

2). 当前使用的 php/php-fpm 版本?

PHP 版本:
PHP 8.0.9 (cli) (built: Jul 30 2021 13:03:39) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.9, Copyright (c) Zend Technologies
with Zend OPcache v8.0.9, Copyright (c), by Zend Technologies

php-fpm 版本:
phpinfo()
PHP Version => 8.0.9

3). 当前系统

No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.2 LTS
Release: 20.04
Codename: focal

4). 业务环境

开发环境

5). 相关软件版本

2. 问题描述?

  return RespondUtil::successRespond([
      $request->file->getClientOriginalName(),
      $request->file->extension()]
  );

3. 您期望得到的结果?

// 当我把 extension() 替换成 pathinfo() 是没问题的. 
return RespondUtil::successRespond([
    $request->file->getClientOriginalName(),
    pathinfo($request->file->getClientOriginalName(), PATHINFO_EXTENSION)
]);

UploadedFile 的 extension() 方法对 .ob j 后缀的文件会返回 .txt

4. 您实际得到的结果?

UploadedFile 的 extension() 方法对 .ob j 后缀的文件会返回 .txt

《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 5

这个倒是挺稀奇的,解析为txt 是有点奇怪

1年前 评论
徵羽宫 (楼主) 1年前
随波逐流

直接用 getClientOriginalExtension()获取后缀扩展

1年前 评论

extension() 会根据文件内容去“猜测”扩展名。而不是单纯从文件名中获取。

1年前 评论

UploadedFile 的 extension() 实际上是调用guessExtension() 是根据文件的mimeType去判断的文件后缀。 而getClientOriginalExtension()则是使用pathinfo()相当于截取的文件后缀。

1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!