我的页面上有一个动态生成的图像,如下所示:
<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 的解决方案持开放态度。