首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >下载编码格式的图片

下载编码格式的图片
EN

Stack Overflow用户
提问于 2013-10-04 14:52:28
回答 2查看 697关注 0票数 0

我试着做一个下载图片的按钮,我做的是,做了一个这样的函数:

代码语言:javascript
复制
function download_image(){
    $file = $_POST['file'];
    header('Content-Description: File Transfer');
    header("Content-type: application/octet-stream");//notice this content-type, it will force a download since browsers think that's what they should do with .exe files
    header("Content-disposition: attachment; filename= ".$file."");
    readfile($file);
}

当单击download按钮时,我执行了以下js:

代码语言:javascript
复制
$.ajax({
        type:"POST",
        url:'..address to../download_image',
        data:{
            file:imgElem
        },
        success:function(){
            alert('image downloaded');
        }
    });

现在的问题是,我没有图像名称,但编码图像如下:

代码语言:javascript
复制
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABBgAAAEtCAYAAACibtPQAAAgAElEQVR4nO3dX28c150mYH+c+S57s5d7uVcFGMEGuQiwgW+ycCEAsdl4gQjGJqsyYIyCYEbwEDXKZD1KNLHVtjMZDeM/kmmWLJmOrSiOzViOJDJiHNtnLoLqLRarm8VDFfsU63mBBzabzWZ12/rp1MtTzSdCCKEoipBlWciyLFRVFbpSVdX8PlmWhTzPO+8nIiIiIiIiItPLE7PZLJRlGUIIoSzLUBRF5x3rgkFEREREREREpJ0nmh8oGEREREREREQkJvOCIc/z+U6GrrQvkVh2XxERERERERGZVo61g6H+nN0MIiIiIiIiItLME+0b+hYHy94QUkRERERERESmlSfKsgyz2SyEEMJsNjvw2yHyPO/c0WAHg4iIiIiIiIg080QIi39NZbNgaL8HQ11KiIiIiIiIiIgcukRCREREREREROS4UTCIiIiI...PHWSgveiOXekFY/8Rr2ZBZ9hO1+vu2t8Mt+7r2Frr2X0JH3Z7n+aECob3Ntvn1zeNoP+/2cXY9FwWDSNqZwtzsWqDX861rV8NRBUP99V3zc9G8zfN8/vXtOdr1NUct1tvPXUTis2iXQAiH3xCwvTOrOQOan2+v15pf03WSuuj71DOjXYC014Lt+3Z97xC6d2097ufSTvuyjeZusaMe9yQFQ/Pxu55L83gf5/OVdKNgkDORRdvRRESkO6c1N+tLMeos2sorIiIi44+CQUadrsZZREQW57TnZv0TKDsCREREzn4UDCIiIiIiIiJy4igYREREREREROTEUTCIiIiIiIiIyImjYBARERERERGRE0fBICIiIiIiIiInjoJBRERERERERE4cBYOIiIiIiIiInDgKBhERERERERE5cRQMIiIiIiIiInLiKBhERERERERE5MRRMIiIiIiIiIjIiaNgEBEREREREZET5z8AyGKspBK3ENIAAAAASUVORK5CYII=">

所以问题是我应该如何下载图像?请帮助我:(

EN

回答 2

Stack Overflow用户

发布于 2013-10-04 14:55:12

只需将window.location设置为编码的URI,例如

代码语言:javascript
复制
window.location.href = 'data:image/png;base64,iVBORw0KGgo...

或者,您也可以打开弹出窗口

http://jsfiddle.net/vaibviad/VE8Qn

如果你想要文件名和扩展名,你也可以试试这个

代码语言:javascript
复制
<a download="FILENAME.EXT" href="data:image/png;base64,asdasd...">Download</a>

下面的链接是带有下载属性的演示,带有文件名和扩展名

http://jsfiddle.net/vaibviad/VE8Qn/3/

注意:Download attribute不受广泛支持

票数 2
EN

Stack Overflow用户

发布于 2013-10-04 14:58:21

JavaScript不能保存文件,所以在这种情况下,你需要从你的API返回一个url,然后在你的success函数中,你将使用window.location = ....returned value...来下载文件。

如果需要演示,请让我知道。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19175070

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档