我在页面上有一个动态生成的图像,如下所示:
<img id="my_image" src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAgEA/gD+AAD/etc............" />
我希望您能够提供一个下载链接,而不是告诉用户右键单击图像并点击保存。当用户点击下载链接时,将提示下载该图像。如何实现这一目标?
最初我的尝试是使用以下js代码:
```javascript $('a.download').click(function(){ window.location.href = 'path/to/image.jpg'; }); ```
但是,这样做会导致图像在浏览器中打开而不是被下载。有什么更好的方法吗?
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解决方案。
:)
- Tats_innit