Привет всем. Столкнулся с такой проблемой - не корректно определяется mime_type файлов, когда я читаю их из папки, куда распаковал zip.
Код для распаковки:
$zip = new ZipArchive;
if (false === $zip->open($path)) {
return [];
}
wp_mkdir_p($tempDir);
$zip->extractTo($tempDir);
$zip->close();
$files = [];
$directoryIterator = new RecursiveDirectoryIterator($tempDir);
$iterator = new RecursiveIteratorIterator($directoryIterator);
foreach ($iterator as $file) {
if ($file->isFile()) {
$filePath = $file->getPathname();
$files[] = [
'file_path' => $filePath,
'file_name' => $file->getFilename(),
'mime_type' => mime_content_type($filePath),
'size' => filesize($filePath),
];
}
}
error_log(print_r($files, true));
Массив одного из вложенных файлов на выходе:
(
[file_path] => /Users/username/Sites/project-name/wp-content/uploads/files/2023/578333/file-name.cdw
[file_name] => file-name.cdw
[mime_type] => application/zip
[size] => 132463
)
При этом, например, png определяется корректно. А cdw как application/zip вместо application/octet-stream. Правда, я в этом не до конца уверен, что application/octet-stream - правильно, но при загрузке этого же file-name.cdw через input type=file определяется как application/octet-stream.
Буду благодарен совету, в какую сторону копнуть.