在 Safari 中强制下载文件

use*_*163 0 php safari file http-headers

我正在尝试使文件可在 Safari 中下载。这是我的代码:

<?php
$file = $_GET['file'];
header ("Content-Disposition: attachment");
header ("Content-type: application/octet-stream");
header ("Content-disposition: attachment; filename=".$file.";");
header("Content-Length: ".filesize($file));
readfile($file);
exit;
?>
Run Code Online (Sandbox Code Playgroud)

它在 FF 中工作正常,但在 Safari 中我得到一个 0kb 文件。

我想我发送的标题有问题。可能是什么错误?

Waq*_*gir 5

尝试这个。

<?php
$file = $_GET['file'];
header('content-type: application/octet-stream');
header('content-Disposition: attachment; filename='.$file);
header('Pragma: no-cache');
header('Expires: 0');
readfile($file);
?>
Run Code Online (Sandbox Code Playgroud)

当心:$_GET['file']没有任何卫生设施或限制的情况下依赖是非常危险的。可用于危害整个服务器应用程序!