强制下载base64图像

use*_*436 6 javascript jquery

从JS开始并不是我的优势之一.在过去的几天里,我一直在尝试编辑这个JS函数,以强制下载base64图像.单击下载按钮时,该功能的作用是打开一个新窗口,上面有图像.然后用户必须右键单击并保存图片.我正试图强制下载图像而不是右键单击并"另存为".

dataurl生成base4 png字符串(数据:image/jpeg; base64,/ 9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAEBAQEBAQEBAQ .........)

我尝试使用,因为它是在另一个线程中建议但但是没有用.

欢迎所有建议.谢谢.

savePaint: function() {
            var self = this;

            dataURL = self.context.canvas.toDataURL();

            var cntnt = $("<p class='dialogHeader'>Please right click and select 'Save Image As' option. Click here to Return</p>           <img id='PrintImage' src=" + dataURL + ">");
            self.newSavedImage.html(cntnt);

            self.showPopup(self.newSavedImage, self.canvasWidth, self.canvasHeight)
}
Run Code Online (Sandbox Code Playgroud)

use*_*436 5

最后!我得到了它的工作.对于任何面临同样问题的人,我在http://danml.com/download.html找到了一个功能,可以强制下载base64.

  • 仅限链接的答案并不好.请将相关代码带入您的答案中. (4认同)
  • 拇指向下直到添加相关代码。链接是太多的文字墙。更好的简单答案与代码在这里:http://stackoverflow.com/questions/14011021/how-to-download-a-base64-encoded-image (2认同)

Jas*_*nCG 1

您可以指定不同的 MIME 类型而不是 image/jpeg,这样浏览器就不会尝试本机打开图像:

data:application/octet-stream;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/...
Run Code Online (Sandbox Code Playgroud)

这将强制下载文件,但我注意到在某些浏览器配置中可能会使用默认文件名自动保存,并且由于浏览器不知道真实的文件类型,因此将由用户指定正确的类型。不幸的是,数据 URI 方案不允许使用建议的文件名。

查看使用 HTML5/Javascript 生成并保存文件以获得更多可能的解决方案。根据您的要求,您最好的选择可能是使用基于 Flash 的解决方案,例如Downloadify