Symfony 2文件上传:guessExtension()不适用于.docx文件

时间:2012-11-25 22:19:11

标签: symfony

public function preUpload()
{
    if (null !== $this->file) {
        $this->path = $this->file->guessExtension();

    }
}

这对.docx文件无效。

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

如何处理?

3 个答案:

答案 0 :(得分:11)

我认为你必须使用:

getClientOriginalExtension()

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

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

答案 1 :(得分:3)

使用

 getExtension()

作为后备?

Symfony API

答案 2 :(得分:1)

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

我们有相同的行为:GuessExtension将返回null。

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

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

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

在您的情况下,丢失的mime类型可能是:

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

我希望这有帮助!