如何强制下载图像?

我在我的页面上有一个动态生成的图像,如下所示:

 

而不是告诉我的用户右键单击图像并点击保存我想要公开下载链接,点击该链接时会提示下载图像。 怎么做到这一点?

最初我在js中尝试这样做:

 var path = $('#my_image').attr('src'); window.open('./download.php?file=' + path); 

并在download.php中:

  <img src="https://stackoverflow.com/questions/12047884/how-to-force-an-image-to-be-downloaded/" /> 

但问题是,Base64 url​​ stirngs如此之大,超出了GET请求字节限制。

我对JavaScript或PHP的解决方案持开放态度。

在download.php中试试这个:

  

并将其用于表单:

 
Download

像Dagon说这不是最好的方法,因为提交表单就像上传整个图像一样。

原来其他一个问题确实得到了答案:

浏览器/ HTML强制从src =“data:image / jpeg; base64 …”下载图像

我严格按照客户端sde这样做:

 $('a#download_image').on('click', function() { var url = $('#my_image').attr('src').replace(/^data:image\/[^;]/, 'data:application/octet-stream'); location.href = url; });