PHP自动下载文件而不提示保存或打开文件

时间:2014-05-03 17:16:28

标签: php download downloading

我有一个功能,我用它来启用从非公共目录下载文件。下载部分工作正常,除了它之前没有提示用户并允许用户选择位置或只是一个简单的打开。

我使用以下代码:

$file = L_APP_BILAGOR."/".$_GET["f"];
$finfo = new finfo(FILEINFO_MIME);
$ct = $finfo->file($fileName);

if (file_exists($file)) {
   header('Content-Type: '.$ct);
   header('Content-Disposition: attachment; filename='.basename($file));
   header('Content-Transfer-Encoding: binary');
   header('Expires: 0');
   header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
   header('Pragma: public');
   header('Content-Length: ' . filesize($file));
   ob_clean();
   flush();
   readfile($file);
   exit;
}

似乎无法正确行事。在下载文件之前,如何强制浏览器提示用户?

2 个答案:

答案 0 :(得分:1)

我不确定这是不是真的是一个php的东西,我相信它更多based on the browser settings。 一般来说,当我比较with other examples时,你的代码对我来说没问题。

答案 1 :(得分:0)

停止Chrome转到内容设置中的自动下载,chrome://settings/content

enter image description here

然后滚动到底部,您会看到自动下载位,然后选择您的偏好。

P.S不是一个适合Stackoverflow的问题。