【问题标题】:How do I Change a File's Format in PHP?如何在 PHP 中更改文件的格式?
【发布时间】:2016-08-23 10:09:53
【问题描述】:

我有一个带有图片库(所有 svg)的网站,并希望用户能够将它们下载为 png(将来他们应该可以选择保存为 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>

下载.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 中更改文件格式/类型?

谢谢!

【问题讨论】:

  • 现在可能是了解简单更改文件扩展名不会以任何方式更改该文件的实际内容/格式的好时机;称猪为“橙色”并不能使它成为任何柑橘类水果,它仍然是猪
  • 如果你想改变一个文件的格式,你需要改变那个文件的实际内容;并且要将 svg 格式文件更改为 png 格式文件,您可能需要找到一个库来为您完成
  • @HamzaZafeer 谢谢!

标签: php file-conversion


【解决方案1】:

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

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

【讨论】:

  • 我会检查 ImageMagick。您建议研究其他任何库吗?
猜你喜欢
  • 1970-01-01
  • 2021-12-10
  • 1970-01-01
  • 1970-01-01
  • 2015-08-18
  • 1970-01-01
  • 2014-01-21
  • 2012-04-25
  • 1970-01-01
相关资源
最近更新 更多