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 回答