当前位置: 首页 > 面试题库 >

强制浏览器使用Javascript window.open下载图像?

丰岳
2023-03-14
问题内容

单击图像后,是否可以将其下载(没有右键单击 将图像另存为 )?

我正在使用一个小的Javascript函数来调用下载页面:

<a href="#" 
   onclick="window.open('download.php?file=test.jpg', 'download', 'status=0');"
>Click to download</a>

在download.php页面中,我有类似以下内容:

$file = $_GET['file'];
header('Content-Description: File Transfer');
header("Content-type: image/jpg");
header("Content-disposition: attachment; filename= ".$file."");
readfile($file);

但这是行不通的。我究竟做错了什么?
提前致谢!


问题答案:

使用 application / octet-
stream
代替 image / jpg

如果在应用程序/八位字节流内容类型的响应中使用[Content-
Disposition]标头,则暗示建议用户代理不应显示该响应,而应直接输入“将响应另存为…”。对话。
— RFC 2616 –
19.5.1内容处置



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

  • 问题内容: 一切正常,但是只有当文件很小(大约1MB)时,当我尝试使用更大的文件(例如20MB)时,我的浏览器将其显示,而不是强制下载,到目前为止,我尝试了许多标头,现在我的代码看起来像: 问题答案: 在将文件内容写入输出流之后,你将设置响应头。在响应生命周期中设置标头很晚。正确的操作顺序应该是首先设置头,然后将文件的内容写入servlet的输出流。 因此,你的方法应编写如下(由于仅是表示形式,因

  • 从互联网下载图片,并显示。下载图片过程中显示进度条。支持图片缩放,运用了ASI、SDWebImage。支持图片缓存。 [Code4App.com]

  • 问题内容: 我想知道是否有任何方法可以使用Javascript / jQuery制作脚本来下载(打开下载对话框)图像,以便浏览器不仅仅显示它。 问题答案: 您需要为此使用服务器端脚本。 或者,您的服务器可能允许您通过配置动态更改标头。 带有mod_headers的Apache解决方案 将可下载的图像放在目录中。在此目录中,创建一个包含以下内容的文件: 测试要求: 测试回应: HTML5解决方案 您

  • 问题内容: 背景 我正在为两个公益网站编写和使用一个非常简单的基于CGI的(Perl)内容管理工具。它为网站管理员提供事件的HTML表单,这些表单将填写字段(日期,位置,标题,描述,链接等)并保存。在该表格上,我允许管理员上传与事件相关的图像。在显示表单的HTML页面上,我还显示了上传图片的预览(HTML img标签)。 问题 当管理员想要更改图片时,会发生此问题。他只需要点击“浏览”按钮,选择一