内容处置附件浏览器行为(下载与在浏览器中查看)
Content Disposition attachment browser behavior (download vs. view in browser)
我有一个 PHP 动态生成条形码的脚本。我希望脚本作为 attachment/raw 图像文件下载...所以我设置了以下 headers:
header('Content-Disposition: attachment; filename="eventbarcode.png"; Content-type: image/gif');
header('Content-Transfer-Encoding: binary');
不过,有一件古怪的事情。在 Firefox 中,可以选择下载或在浏览器中打开。在浏览器中打开时,它显示为 HTML/txt 文档。
是否因为我链接到的文件是 "barcode.php" - 它认为应该是 HTML 文件?我会通过制定 .htaccess 规则以通过 mod-rewrite 将 .gif 文件重定向到该脚本来解决问题吗?还是我错过了 header 中的某些内容?
提前致谢!
当它应该是 Content-Disposition
和 Content-Type
header 的两个单独调用时,您使用了对 header
函数的单个调用。每次调用都会发送一个新的 header;你不能 "concatenate" headers 使用分号,这就是为什么在你的情况下 Content-Type
header 被丢弃。
以下应该有效:
header('Content-Disposition: attachment; filename="eventbarcode.png"');
header('Content-type: image/gif');
header('Content-Transfer-Encoding: binary');
我有一个 PHP 动态生成条形码的脚本。我希望脚本作为 attachment/raw 图像文件下载...所以我设置了以下 headers:
header('Content-Disposition: attachment; filename="eventbarcode.png"; Content-type: image/gif');
header('Content-Transfer-Encoding: binary');
不过,有一件古怪的事情。在 Firefox 中,可以选择下载或在浏览器中打开。在浏览器中打开时,它显示为 HTML/txt 文档。
是否因为我链接到的文件是 "barcode.php" - 它认为应该是 HTML 文件?我会通过制定 .htaccess 规则以通过 mod-rewrite 将 .gif 文件重定向到该脚本来解决问题吗?还是我错过了 header 中的某些内容?
提前致谢!
当它应该是 Content-Disposition
和 Content-Type
header 的两个单独调用时,您使用了对 header
函数的单个调用。每次调用都会发送一个新的 header;你不能 "concatenate" headers 使用分号,这就是为什么在你的情况下 Content-Type
header 被丢弃。
以下应该有效:
header('Content-Disposition: attachment; filename="eventbarcode.png"');
header('Content-type: image/gif');
header('Content-Transfer-Encoding: binary');