【发布时间】:2012-08-16 09:16:56
【问题描述】:
我的页面上有一个动态生成的图像,如下所示:
<img id="my_image" src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAgEA/gD+AAD/etc............" />
我不想告诉我的用户右键单击图像并点击保存,我想公开一个下载链接,单击该链接将提示下载图像。如何做到这一点?
最初我在 js 中的尝试:
var path = $('#my_image').attr('src');
window.open('./download.php?file=' + path);
在download.php中:
<?php
header('Content-Description: File Transfer');
header("Content-type: application/octet-stream");
header("Content-disposition: attachment; filename= " . $_GET['file'] . "");
?>
<img src="<?= $_GET['file'] ?>" />
但问题是,Base64 url 搅拌量太大,超过了 GET 请求字节限制。
我愿意接受 JavaScript 或 PHP 的解决方案。
【问题讨论】:
-
即使 Base64 字符串确实适合查询字符串,PHP 代码也不会按照您的预期执行。
-
使 src 指向一个带有标题等的 php 脚本以供下载。包含图像或使用 file_get_contents() 获取图像。
-
How do I make a jpg image download like a pdf file does? 的可能重复项希望它也有帮助 bruv
:) -
你最初是如何生成内联图像的?
-
@Jack HTML5 FileReader 用于将图像抓取到用户的浏览器中,他/她所做的编辑是通过 Canvas JavaScript 完成的。 JS插件是生成Base64图像代码的。
标签: php javascript jquery base64