当前位置: 首页 > 知识库问答 >
问题:

强制下载base64映像

闻人树
2023-03-14

从JS开始不是我的优势之一。在过去的几天里,我一直在尝试编辑这个JS函数,使其强制下载bas64图像。当点击下载按钮时,该函数的作用是打开一个带有图像的新窗口。然后用户必须右键单击并保存图片。我试图强制下载图像,而不是右键单击并另存为。

dataurl生成base4 png字符串(数据:image/jpeg;base64,/9j/4aaqskzjrgabaaqabaad/2wbdaaaebaqebaqebaq………)

我试着按照另一个帖子中的建议使用,但没有效果。

欢迎所有建议。谢谢

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)
}

共有3个答案

秦安怡
2023-03-14

你可以试试这个:
javascript文件:

var valuToDecode = document.getElementById("base64-image-string").value;
var linkImg = valuToDecode.concat('" alt="Red dot" download="ganixo-file.png"> click here to download your img </a>');
document.getElementById("codedImg").innerHTML=  '<a href="data:image/jpeg;base64,'.concat(linkImg);

HTML文件:

Image url:<p  id="codedImg"></p>

输出:

<p id="codeImg"><a href="data:image/jpeg;base64,iVB..." download="img.png">click here to download your img</a></p>
庄飞
2023-03-14

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

data:application/octet-stream;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/...

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

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

赵元白
2023-03-14

最后我让它工作了。对于任何面临同样问题的人,我在这里找到了一个函数http://danml.com/download.html这将允许您强制下载base64。

 类似资料:
  • 问题内容: 我在客户端生成图像,并使用HTML显示如下: 我想提供下载生成的图像的可能性。 我怎么能知道浏览器正在打开文件保存对话框(或者只是将chrome或firefox这样的图像下载到下载文件夹中即可),从而允许用户保存图像 而无需右键单击并另存为 图像? 我希望没有服务器交互的解决方案。因此,我知道如果我先上传图像然后开始下载,那将是可能的。 非常感谢! 问题答案: 只需替换为。客户端不会将

  • 我是php和ajax的新手。我试图从文档列表中强制下载文件。单击按钮后使用ajax调用触发以下功能。 我假设我得到的是文件内容作为响应,而不是下载文件。如果能给我一些建议,我将不胜感激。

  • 问题内容: 当用户单击下载链接时,我正在尝试下载文件。 在控制器中: 这将打开对话框以保存文件,但它表示文件为0字节。并将其更改为: 我得到了一堆奇怪的字符,而不是文件下载对话框。 最后,将“ setContent”行切换为: 它返回一个PHP错误: 致命错误:允许的内存大小… 关于如何实现这一目标的任何线索?我以前在PHP(没有MVC)中做过,但是我不知道通过Symfony2可以做些什么… 也许

  • 问题内容: 我想创建一个允许强制下载JPG的下载脚本。这是我的PHP脚本: 这是我的js代码的代码段: 使用此代码示例,什么都不会发生。如果我将结果附加到HTML标记中,它将显示文件的内容。 有什么想法可以教浏览器下载此文件吗? 编辑:脚本更新 问题答案: 您无法使用Ajax下载文件。因此,如果您在ajax上发生了某些情况,则应返回url作为响应,并像开始下载过程一样应用它。 这里有一个音符。我记

  • 问题内容: 我希望在我的一个站点的每个视频下方添加“下载此文件”功能。我需要强迫用户下载文件,而不仅仅是链接到文件,因为有时这会开始在浏览器中播放文件。问题是,视频文件存储在单独的服务器上。 有什么办法可以强制用PHP下载吗? 问题答案: 您可以尝试这样的事情: 我刚刚测试了它,它对我有用。 请注意,为了能够读取远程URL,您需要启用它。

  • 问题内容: 我的服务器上有一个CSV文件。如果用户单击链接,则应下载该链接,但会在我的浏览器窗口中打开。 我的代码如下 这是我所有开发工作都在上面的普通Web服务器。 我尝试了类似的东西: 现在我文件的内容: 现在我的问题是正在下载,而不是我的CSV文件。它创建一个新文件。 问题答案: .htaccess解决方案 要强行下载服务器上的所有CSV文件,请添加.htaccess文件: PHP解决方案