如何在PHP中更改文件格式?

时间:2016-04-28 14:48:06

标签: php file-conversion

我有一个带有图片库的网站(所有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中更改文件格式/类型?

谢谢!

1 个答案:

答案 0 :(得分:2)

真的不那么简单。您所做的相当于将.svg文件重命名为计算机上的.png,当然这不会起作用。

您可以通过库转换图片,例如ImageMagick。同样,您将需要一个不同的库来处理PDF。