Как изменить формат файла в PHP?

У меня есть сайт с галереей изображений (все svgs), и я хотел бы, чтобы пользователь мог загружать их в формате png (в будущем у него должен быть выбор сохранить как svg, png, jpg или pdf, но давайте разберемся) одна вещь за раз).

Я попробовал ответ нашел Вот. Файл загружается как png, но при открытии я получаю сообщение об ошибке, что файл поврежден / поврежден.

index.html:

<a href="/path/to/file/download.php?http://example.com/uploads/icon-100.svg">
<button> Download PNG </button>
</a>

download.php:

<?php
function replace_extension($filename, $new_extension) {
$info = pathinfo($filename);
return $info['filename'] . '.' . $new_extension;
}

$url = $_SERVER['QUERY_STRING'];

header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.replace_extension( basename($url), 'png').'"');
readfile($url);
?>

Из других ответов я нашел только адрес, меняющий расширение или переименовывающий файл, не меняя формат / тип. Увидеть Вот.

Как изменить формат / тип файла в php?

Спасибо!

1

Решение

Это действительно не так просто. То, что вы делаете, эквивалентно переименованию .svg подать в .png на вашем компьютере, конечно, это не будет работать.

Вы можете конвертировать изображения через библиотеку, такую ​​как ImageMagick. Точно так же вам понадобится другая библиотека для работы с PDF-файлами.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]