【问题标题】:Force File Download in Safari在 Safari 中强制文件下载
【发布时间】:2012-07-30 13:26:29
【问题描述】:

我正在尝试在 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;
?>

它在 FF 中运行良好,但在 Safari 中我得到一个 0kb 的文件。

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

【问题讨论】:

  • 您的脚本存在严重的安全问题...
  • 旧的,但仍然很危险!这允许遍历父目录 (../),允许在 web/public 文件夹之外下载 PHP 文件、配置文件等!

标签: php file safari http-headers


【解决方案1】:

试试这个。

<?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);
?>

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

【讨论】:

    猜你喜欢
    • 2011-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多