私は画像ギャラリー(すべてのsvgs)を持つサイトを持っていて、ユーザーがpngとしてそれらをダウンロードできるようにしたいと思います(将来はsvg、png、jpg、pdfとして保存する必要がありますが一度に1つのことを処理しましょう)。PHPでファイルの書式を変更するにはどうすればよいですか?
答えは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で変更するにはどうすればよいですか?
ありがとうございます!
ファイルの拡張子を単純に変更しても、そのファイルの実際のコンテンツ/形式は変更されないということを知るのは良い時期です。豚を「オレンジ」と呼んでも柑橘系の果実とはならないが、まだ豚だ。 –
ファイルのフォーマットを変更するには、そのファイルの実際の内容を変更する必要がある。 svg形式のファイルをpng形式のファイルに変更するには、おそらくライブラリを探す必要があります。 –
http://stackoverflow.com/questions/4809194/convert-svg-image-to-png- with-php –