如何更改 PHP 中的文件格式?
How do I Change a File's Format in PHP?
我有一个带有图片库(所有 svg 格式)的网站,希望用户能够将它们下载为 png 格式(将来他们应该可以选择另存为 svg、png、jpg 或pdf,但让我们一次处理一件事)。
我尝试找到 here 的答案。文件下载为 png,但打开时出现错误,指出文件为 damaged/corrupted.
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);
?>
我发现的其他答案只解决更改扩展名或重命名文件的问题,而不是更改 format/type。参见 here。
如何更改 php 中的文件 format/type?
谢谢!
真的没那么简单。您所做的相当于在您的计算机上将 .svg
文件重命名为 .png
,当然这样是行不通的。
可以通过库进行图片转换,比如ImageMagick。同样,您将需要一个不同的库来处理 PDF。
我有一个带有图片库(所有 svg 格式)的网站,希望用户能够将它们下载为 png 格式(将来他们应该可以选择另存为 svg、png、jpg 或pdf,但让我们一次处理一件事)。
我尝试找到 here 的答案。文件下载为 png,但打开时出现错误,指出文件为 damaged/corrupted.
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);
?>
我发现的其他答案只解决更改扩展名或重命名文件的问题,而不是更改 format/type。参见 here。
如何更改 php 中的文件 format/type?
谢谢!
真的没那么简单。您所做的相当于在您的计算机上将 .svg
文件重命名为 .png
,当然这样是行不通的。
可以通过库进行图片转换,比如ImageMagick。同样,您将需要一个不同的库来处理 PDF。