WebP Express CloudHost.es Fix v0.25.9-cloudhost
✅ 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>
This commit is contained in:
55
lib/classes/Mime.php
Normal file
55
lib/classes/Mime.php
Normal file
@@ -0,0 +1,55 @@
|
||||
<?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);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user