我有一个带有图片库的网站(所有svgs),并希望用户能够将它们下载为pngs(将来他们应该可以选择保存为svg,png,jpg或pdf,但是让我们一次处理一件事。)
我尝试了here找到的答案。该文件作为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);
?>
我发现的其他答案只能更改扩展名或重命名文件,而不是更改格式/类型。请参阅here。
如何在php中更改文件格式/类型?
谢谢!
答案 0 :(得分:2)
真的不那么简单。您所做的相当于将.svg
文件重命名为计算机上的.png
,当然这不会起作用。
您可以通过库转换图片,例如ImageMagick。同样,您将需要一个不同的库来处理PDF。