使用PHP强制下载图像对话框

时间:2018-06-05 15:20:26

标签: php

我的index.php链接就像这样:

<a href="download.php?url=http://example.com/image.jpg">Download</a>

我需要在您点击该链接时打开下载拨号以保存具有myfile123.jpg等特定名称的照片。

在我的download.php我有这个:

header('Content-type:image/jpeg');

$handle = fopen($_GET['url'], "rb");
while (!feof($handle)) {
  echo fread($handle, 8192);
}
fclose($handle);

在检索图像时,它只是在同一个标​​签中打开它(而不是强制对话框)。

2 个答案:

答案 0 :(得分:2)

查看PHP readfile example

来自php.net的例子:

    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename="'.basename($file).'"');
    header('Expires: 0');
    header('Cache-Control: must-revalidate');
    header('Pragma: public');
    header('Content-Length: ' . filesize($file));
    readfile($file);

答案 1 :(得分:1)

您需要添加另一个header才能触发下载,例如:

header('Content-Disposition: attachment; filename="image.jpg"');
  

有关Content-Disposition标题的详细信息,请访问:https://developer.mozilla.org/es/docs/Web/HTTP/Headers/Content-Disposition