【问题标题】:download base_64 string as png in browser [closed]在浏览器中将base64字符串下载为png [关闭]
【发布时间】:2012-11-07 07:36:55
【问题描述】:

我编辑了一个 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的正确方法吗? 如果不是请提出解决我问题的正确方法。

【问题讨论】:

  • 为什么不直接返回没有base64编码的图片呢?您可以设置一个 PHP 文件,它返回一个图像作为图像源。
  • 我把它解决为 和 php------ ---$base64strImg=$_REQUEST['string']; header('Content-Disposition: attachment;filename="test.png"');----会造成问题吗?因为没有检查字符串。 header('Content-Type: application/force-download'); echo base64_decode($base64strImg);
  • 请写下这个答案并接受它。

标签: php javascript png base64


【解决方案1】:

我把它解决为

 <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);

它会产生一些问题吗?因为没有检查字符串。

【讨论】:

  • 图像字符串作为隐藏值通过表单发送,第二个 sn-ps 用于下载图像。
  • 所以你实现了我的建议,然后接受它作为你自己的答案......(y)
猜你喜欢
  • 1970-01-01
  • 2014-07-07
  • 2019-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-16
相关资源
最近更新 更多