0

PNG画像を編集してテキストを入力すると、表示は次のようになります

<?php    
ob_start();
imagepng($img, NULL);
$rawImageBytes = ob_get_clean();
imagedestroy($img);
echo "<img id='ca_image' src='data:image/png;base64," . base64_encode($rawImageBytes)     . "' />";

?>
<a href="#" onclick="return download();">Download</a>
<script>
function download(){
var img =document.getElementById("ca_image").src;
var url = img.replace(/^data:image\/[^;]/, 'data:application/octet-stream');
location.href = url;
</script>

ファイルのコンテンツタイプを変更すると、ブラウザは自動的にポップアップウィンドウをダウンロードしてダウンロードしますが、ダウンロードされたファイルタイプは PART です。base_64 を png ファイルとしてダウンロードしたい。これはこのアプローチによって可能ですか?これはファイルをpngとして保存する正しいアプローチですか? そうでない場合は、私の問題を解決する正しい方法を提案してください。

4

1 に答える 1

6

私はそれを次のように解決します

 <input name="string" type="hidden" value="<?php echo base64_encode($rawImageBytes) ?>"/> 

そしてphpで

$base64strImg=$_REQUEST['string']; 
 header('Content-Disposition: attachment;filename="test.png"');
header('Content-Type: application/force-download'); 
echo base64_decode($base64strImg);

それはいくつかの問題を引き起こすことができますか?文字列をチェックしていません。

于 2012-11-08T07:23:24.577 に答える