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

    }
}

这不适用于 .docx 文件。

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

如何处理?

4

3 回答 3

13

我认为你必须使用:

getClientOriginalExtension()

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

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

于 2014-05-08T12:25:07.367 回答
3

采用

 getExtension()

作为后备?

Symfony API

于 2012-11-26T00:18:39.230 回答
1

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

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

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

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

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

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

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

我希望这有帮助!

于 2016-04-05T20:01:34.993 回答