У меня есть сайт с галереей изображений (все 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?
Спасибо!
Это действительно не так просто. То, что вы делаете, эквивалентно переименованию .svg
подать в .png
на вашем компьютере, конечно, это не будет работать.
Вы можете конвертировать изображения через библиотеку, такую как ImageMagick. Точно так же вам понадобится другая библиотека для работы с PDF-файлами.
Других решений пока нет …