2016-04-28 10 views
1

私は画像ギャラリー(すべての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で変更するにはどうすればよいですか?

ありがとうございます!

+3

ファイルの拡張子を単純に変更しても、そのファイルの実際のコンテンツ/形式は変更されないということを知るのは良い時期です。豚を「オレンジ」と呼んでも柑橘系の果実とはならないが、まだ豚だ。 –

+0

ファイルのフォーマットを変更するには、そのファイルの実際の内容を変更する必要がある。 svg形式のファイルをpng形式のファイルに変更するには、おそらくライブラリを探す必要があります。 –

+1

http://stackoverflow.com/questions/4809194/convert-svg-image-to-png- with-php –

答えて

2

これは本当に簡単なことではありません。あなたがやっていることは、あなたのコンピュータの.png.svgファイルの名前を変更するのと同じですが、もちろん動作しません。

ImageMagickなどのライブラリを使用して画像を変換できます。同様に、PDFで作業するには別のライブラリが必要です。

+0

ImageMagickをチェックアウトします。研究することをお勧めする他の図書館はありますか? – BastionGamma

+0

@BastionGamma多分[fpdf](http://www.fpdf.org/) –

関連する問題