Я хочу импортировать файл PowerPoint в мое приложение Symfony.Я разрешил эти типы MIME в параметр белого списка.
co_upload_white_list:
- "image/*"
- "application/pdf"
- "application/x-pdf"
- "application/msword"
- "application/vnd.openxmlformats-officedocument.presentationml.presentation"
- "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
- "application/vnd.oasis.opendocument.text"
- "application/vnd.ms-excel"
- "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
- "application/vnd.oasis.opendocument.spreadsheet"
- "application/vnd.ms-powerpoint"
Этот код работает нормально, но MIME-тип возвращается, возвращаемый Symfony / Component / HttpFoundation / File / MimeType / FileBinaryMimeTypeGuesser.php в $ file-> getMimeType ():application / octet-stream, но это должен быть файл application / vnd.openxmlformats-officedocument.presentationml.presentation
use Oneup\UploaderBundle\Uploader\Naming\NamerInterface;
class UploadListener implements NamerInterface
{
[....]
public function onValidate(ValidationEvent $event)
{
/**
* $file is oneup/uploader-bundle/Uploader/File/FilesystemFile.php
*/
$file = $event->getFile();
$mimeType = $file->getMimeType();
$fileSize = $file->getSize();
$ext = $file->getExtension();
$hotel = $event->getRequest()->attributes->get('hotel');
$locale = ($hotel->getUserLocale()) ? $hotel->getUserLocale() : 'en';
if (explode("/", $mimeType)[0] != "image" && !in_array($mimeType, $this->uploadWhiteList)) {
$this->messenger->error("MimeType invalid: %mimeType%", ['%mimeType%' => $mimeType], $locale);
throw new HttpException(400, "File type invalid, mimetype is '$mimeType', allowed=".json_encode($this->uploadWhiteList));
}
[...]
}
Есть ли способ получить правильный тип MIME-типа?