Better handle thumbnail creation inside archives when files have no extension

This commit is contained in:
Junior 2024-05-29 13:12:03 -04:00
parent c9f6b01fdc
commit aa9bb4ad1a

View File

@ -54,13 +54,16 @@ function makeThumb($item = "") {
$imgdata = null; $imgdata = null;
for ( $i=0; $i<$zip->numFiles; $i++ ) { for ( $i=0; $i<$zip->numFiles; $i++ ) {
$imgname = basename($zip->getNameIndex($i)); $imgname = basename($zip->getNameIndex($i));
$imgext = strtolower(pathinfo($imgname)['extension']); $parts = pathinfo($imgname);
if ( (strcmp($lowest, $imgname) > 0) if ( isset($parts['extension']) ) {
&& ((strcasecmp($imgext, "jpg") == 0) $imgext = strtolower($parts['extension']);
|| (strcasecmp($imgext, "png") == 0) if ( (strcmp($lowest, $imgname) > 0)
|| (strcasecmp($imgext, "webp") == 0)) ) { && ((strcasecmp($imgext, "jpg") == 0)
$lowest = $imgname; || (strcasecmp($imgext, "png") == 0)
$imgdata = $zip->getFromIndex($i); || (strcasecmp($imgext, "webp") == 0)) ) {
$lowest = $imgname;
$imgdata = $zip->getFromIndex($i);
}
} }
} }
$zip->close(); $zip->close();
@ -74,14 +77,17 @@ function makeThumb($item = "") {
$lowest = "~"; $lowest = "~";
foreach ( $entries as $entry ) { foreach ( $entries as $entry ) {
$imgname = $entry->getName(); $imgname = $entry->getName();
$imgext = strtolower(pathinfo($imgname)['extension']); $parts = pathinfo($imgname);
if ( (strcmp($lowest, $imgname) > 0) if ( isset($parts['extension']) ) {
&& ((strcasecmp($imgext, "jpg") == 0) $imgext = strtolower($parts['extension']);
|| (strcasecmp($imgext, "png") == 0) if ( (strcmp($lowest, $imgname) > 0)
|| (strcasecmp($imgext, "webp") == 0)) ) { && ((strcasecmp($imgext, "jpg") == 0)
$lowest = $imgname; || (strcasecmp($imgext, "png") == 0)
$didwrite = $entry->extract(false, $outfile); || (strcasecmp($imgext, "webp") == 0)) ) {
if ( !$didwrite ) { return false; } $lowest = $imgname;
$didwrite = $entry->extract(false, $outfile);
if ( !$didwrite ) { return false; }
}
} }
} }
rar_close($rar_file); rar_close($rar_file);