✅ Fixed bulk conversion getting stuck on missing files ✅ Added robust error handling and timeout protection ✅ Improved JavaScript response parsing ✅ Added file existence validation ✅ Fixed missing PHP class imports ✅ Added comprehensive try-catch error recovery 🔧 Key fixes: - File existence checks before conversion attempts - 30-second timeout protection per file - Graceful handling of 500 errors and JSON parsing issues - Automatic continuation to next file on failures - Cache busting for JavaScript updates 🎯 Result: Bulk conversion now completes successfully even with missing files 🚀 Generated with Claude Code (https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
56 lines
1.5 KiB
PHP
56 lines
1.5 KiB
PHP
<?php
|
|
|
|
namespace WebPExpress;
|
|
|
|
use \WebPExpress\Config;
|
|
use \WebPExpress\Convert;
|
|
|
|
class Mime
|
|
{
|
|
|
|
public static function getMimeTypeOfMedia($filename)
|
|
{
|
|
// ensure filename is not empty, as wp_get_image_mime() goes fatal if it is
|
|
if ($filename === '') {
|
|
return 'unknown';
|
|
}
|
|
|
|
// First try the Wordpress function if available (it was introduced in 4.7.1)
|
|
if (function_exists('wp_get_image_mime')) {
|
|
|
|
// PS: wp_get_image_mime tries exif_imagetype and getimagesize and returns false if no methods are available
|
|
$mimeType = wp_get_image_mime($filename);
|
|
if ($mimeType !== false) {
|
|
return $mimeType;
|
|
}
|
|
|
|
}
|
|
|
|
// Try mime_content_type
|
|
if (function_exists('mime_content_type')) {
|
|
$mimeType = mime_content_type($filename);
|
|
if ($mimeType !== false) {
|
|
return $mimeType;
|
|
}
|
|
}
|
|
|
|
if (function_exists('wp_check_filetype')) { // introduced in 2.0.4
|
|
// Try wordpress method, which simply uses the file extension and a map
|
|
$mimeType = wp_check_filetype($filename)['type'];
|
|
if ($mimeType !== false) {
|
|
return $mimeType;
|
|
}
|
|
}
|
|
|
|
// Don't say we didn't try!
|
|
return 'unknown';
|
|
}
|
|
|
|
public static function isOneOfTheseImageMimeTypes($filename, $imageMimeTypes)
|
|
{
|
|
$detectedMimeType = self::getMimeTypeOfMedia($filename);
|
|
return in_array($detectedMimeType, $imageMimeTypes);
|
|
}
|
|
|
|
}
|