Php 在浏览器中将base_64字符串作为png下载
我编辑一个png图像,在上面放一些文字,显示如下Php 在浏览器中将base_64字符串作为png下载,php,javascript,png,base64,Php,Javascript,Png,Base64,我编辑一个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="
<?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>
函数下载(){
var img=document.getElementById(“ca_image”).src;
var url=img.replace(/^data:image\/[^;]/,'data:application/octet stream');
location.href=url;
当我更改文件的内容类型时,浏览器会自动弹出窗口进行下载,但下载的文件类型是其中的一部分。我想将base_64下载为png文件。
这种方法是否可行?
这是将文件保存为png的正确方法吗?
如果没有,请建议正确的方法来解决我的问题。我会像你一样解决它
<input name="string" type="hidden" value="<?php echo base64_encode($rawImageBytes) ?>"/>
它会产生一些问题吗?因为我没有检查字符串。我会解决它
<input name="string" type="hidden" value="<?php echo base64_encode($rawImageBytes) ?>"/>
它会产生一些问题吗?我们没有检查字符串。为什么不直接返回不带base64编码的图像?您可以设置一个PHP文件,该文件返回一个图像作为图像源。我解决了这个问题,请将其作为答案写下来并接受它。为什么不直接返回不带base64编码的图像?您可以设置一个返回的PHP文件作为图像源的图像。我解决它,因为请将此作为答案并接受它。图像字符串以隐藏值的形式发送,第二个片段用于下载图像。所以您实现了我的建议,然后接受它作为您自己的答案…(y)图像字符串以隐藏值的形式发送,第二个片段用于下载图像。所以您实现了我的建议,然后接受它作为您自己的答案…(y)