Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在浏览器中将base_64字符串作为png下载_Php_Javascript_Png_Base64 - Fatal编程技术网

Php 在浏览器中将base_64字符串作为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="

我编辑一个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>

函数下载(){
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)