Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于强制下载的PHP脚本不起作用_Php_Apache_Permissions_Http Status Code 403 - Fatal编程技术网

用于强制下载的PHP脚本不起作用

用于强制下载的PHP脚本不起作用,php,apache,permissions,http-status-code-403,Php,Apache,Permissions,Http Status Code 403,我有一个简单的小php代码,允许我强制用户从我的网站下载视频,而不是在浏览器中播放 <?php $path = $_GET['path']; header('Content-Disposition: attachment; filename=' . basename($path)); readfile($path); ?> 由于我将我的站点移动到了一个新的服务器上,似乎出现了权限问题,我得到了一个403禁止的“您没有访问此服务器上的/download-stream.php的

我有一个简单的小php代码,允许我强制用户从我的网站下载视频,而不是在浏览器中播放

<?php

$path = $_GET['path'];
header('Content-Disposition: attachment; filename=' . basename($path));
readfile($path);

?>

由于我将我的站点移动到了一个新的服务器上,似乎出现了权限问题,我得到了一个403禁止的“您没有访问此服务器上的/download-stream.php的权限”。


php文件设置为与之前相同的权限(644)。我不知道它为什么现在这样做

试试这样的方法:

<?php
header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=\"$path\"\n");
$fp=fopen("$path", "r");
fpassthru($fp);

我通常使用类似的方法来强制下载。如果更改要下载的文件类型,请记住更改MIME类型

        $attachment_location = $_SERVER["DOCUMENT_ROOT"] . "/file.zip";
        if (file_exists($attachment_location)) {

            header($_SERVER["SERVER_PROTOCOL"] . " 200 OK");
            header("Cache-Control: public"); // needed for i.e.
            header("Content-Type: application/zip");
            header("Content-Transfer-Encoding: Binary");
            header("Content-Length:".filesize($attachment_location));
            header("Content-Disposition: attachment; filename=file.zip");
            readfile($attachment_location);
            die();        
        } else {
            die("Error: File not found.");
        } 

Apache配置(httpd.conf)导致了权限问题。试着上传一个hello world脚本,可以吗?根文件夹的权限是多少?我希望你为了我们的利益简化了它,因为这是一些非常容易被利用的代码…hello world可以工作。根文件夹有755个权限(上面安装了wordpress博客),对Darien来说,我是php的业余爱好者,事实上,这就是下载php脚本的全部内容……我想我应该感到尴尬,您需要解决
403
错误,还是需要下载脚本的帮助?