在浏览器中将base_64字符串下载为png

hem*_*mc4 0 javascript php base64 png

我编辑了一个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>
Run Code Online (Sandbox Code Playgroud)

当我更改文件的内容类型时,浏览器会自动弹出窗口下载,但下载的文件类型为PART.我想下载base_64作为png文件.这种方法有可能吗?这是将文件保存为png的正确方法吗?如果没有请建议正确的方法来解决我的问题.

hem*_*mc4 6

我解决它

 <input name="string" type="hidden" value="<?php echo base64_encode($rawImageBytes) ?>"/> 
Run Code Online (Sandbox Code Playgroud)

在PHP中

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

它会造成一些问题吗?因为没有检查字符串.

  • 所以你实现了我的建议然后接受它作为你自己的答案...(y) (2认同)