【问题标题】:Symfony 2 file upload: guessExtension() doesn't work for .docx filesSymfony 2 文件上传:guessExtension() 不适用于 .docx 文件
【发布时间】:2012-11-13 09:59:33
【问题描述】:
public function preUpload()
{
    if (null !== $this->file) {
        $this->path = $this->file->guessExtension();

    }
}

这不适用于 .docx 文件。

我得到一个名为“myfile”的文件。 -> 没有扩展名。

如何处理?

【问题讨论】:

    标签: symfony


    【解决方案1】:

    我认为你必须使用:

    getClientOriginalExtension()

    因为您想获取原始名称的扩展名,而不是文件在服务器中的临时名称。

    http://api.symfony.com/2.4/Symfony/Component/HttpFoundation/File/UploadedFile.html

    【讨论】:

      【解决方案2】:

      使用

       getExtension()
      

      作为后备?

      Symfony API

      【讨论】:

      • Symfony 类 "File" 扩展了 PHP 的 "SplFileInfo" \SplFileInfo::getExtension() 在 PHP 5.3.6 之前不可用
      【解决方案3】:

      我在 symfony 核心文件中发现了一个错误,它缺少 .xls 文件的 mimeType。

      我们有同样的行为:GuessExtension 会返回 null。

      我和我的团队将其缩小到一个列出 symfony 的 mime 类型的数组。

      这是我在另一个问题上回答的相同解决方案的链接: https://stackoverflow.com/a/36435844/3980097

      您将找到 MimeTypeExtensionGuesse.php 的确切路径

      在您的情况下,缺少的 mime 类型可能是:

      'application/vnd.openxmlformats-officedocument.wordprocessingml.document' => 'docx',
      

      我希望这会有所帮助!

      【讨论】:

        猜你喜欢
        • 2019-03-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-08-02
        • 2015-03-31
        • 1970-01-01
        相关资源
        最近更新 更多