forked from leftypol/leftypol
GdMediaHandler.php: implement installMedia
This commit is contained in:
parent
969543ae5f
commit
db3b59e018
1 changed files with 31 additions and 9 deletions
|
@ -88,6 +88,25 @@ class GdMediaHandler implements MediaHandler {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function installMediaImpl(
|
||||||
|
mixed $gd,
|
||||||
|
string $file_path,
|
||||||
|
string $file_mime,
|
||||||
|
string $file_kind,
|
||||||
|
string $preferred_out_file_basepath,
|
||||||
|
): string {
|
||||||
|
$out_path = $preferred_out_file_basepath . '.' . Metadata\mime_to_ext($file_mime);
|
||||||
|
|
||||||
|
if ($this->strip_redraw) {
|
||||||
|
if (!self::imageSaveTo($gd, $out_path, $file_mime)) {
|
||||||
|
throw new MediaException("Could not create media file at '$out_path'", MediaException::ERR_IO_ERR);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$this->move_or_link_or_copy($file_kind, $file_path, $out_path);
|
||||||
|
}
|
||||||
|
return $out_path;
|
||||||
|
}
|
||||||
|
|
||||||
private function generateThumbImpl(
|
private function generateThumbImpl(
|
||||||
mixed $gd,
|
mixed $gd,
|
||||||
string $source_file_path,
|
string $source_file_path,
|
||||||
|
@ -225,6 +244,11 @@ class GdMediaHandler implements MediaHandler {
|
||||||
\imagedestroy($handle[0]);
|
\imagedestroy($handle[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function installMedia(mixed $handle, string $preferred_out_file_basepath): string {
|
||||||
|
list($gd, $file_path, $file_mime, $file_kind) = $handle;
|
||||||
|
return $this->installMediaImpl($gd, $file_path, $file_mime, $file_kind, $preferred_out_file_basepath);
|
||||||
|
}
|
||||||
|
|
||||||
public function installMediaAndGenerateThumb(
|
public function installMediaAndGenerateThumb(
|
||||||
mixed $handle,
|
mixed $handle,
|
||||||
string $media_preferred_out_file_basepath,
|
string $media_preferred_out_file_basepath,
|
||||||
|
@ -233,15 +257,13 @@ class GdMediaHandler implements MediaHandler {
|
||||||
int $thumb_max_height
|
int $thumb_max_height
|
||||||
): MediaInstallResult {
|
): MediaInstallResult {
|
||||||
list($gd, $source_file_path, $source_file_mime, $source_file_kind) = $handle;
|
list($gd, $source_file_path, $source_file_mime, $source_file_kind) = $handle;
|
||||||
$out_path = $media_preferred_out_file_basepath . '.' . Metadata\mime_to_ext($source_file_mime);
|
$out_path = $this->installMediaImpl(
|
||||||
|
$gd,
|
||||||
if ($this->strip_redraw) {
|
$source_file_path,
|
||||||
if (!self::imageSaveTo($gd, $out_path, $source_file_mime)) {
|
$source_file_mime,
|
||||||
throw new MediaException("Could not create media file at '$out_path'", MediaException::ERR_IO_ERR);
|
$source_file_kind,
|
||||||
}
|
$media_preferred_out_file_basepath
|
||||||
} else {
|
);
|
||||||
$this->move_or_link_or_copy($source_file_kind, $source_file_path, $out_path);
|
|
||||||
}
|
|
||||||
|
|
||||||
$thumb = $this->generateThumbImpl(
|
$thumb = $this->generateThumbImpl(
|
||||||
$gd,
|
$gd,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue