PHP下载无法正常运行

时间:2018-01-28 12:56:30

标签: php

我只想制作某种“下载服务”,但它无效。

整个download.php:

<?php
    include "utils/config.php";
    include "utils/utils.php";

    if($isLoggedIn && isset($_POST['id']) && hasProduct($userid,$_POST['id'])){

        $ID = $_POST['id'];
        $pdata = getProduct($ID);
        $file = $pdata['file'];
        $name = $pdata['dlfile'];
        $mime = $pdata['file_mime_type'];

        #echo $file."<br>".$name."<br>".$mime;

        /**
         * $file = "assets/files/151708025047541"
         * $name = "API.jar"
         * $mime = "application/java-archive"
         */

        download($file,$name,$mime); // <-- wouldn't work
        #download("assets/files/151708025047541","API.jar","application/java-archive"); // <-- wouldn't work
    }
    #download("assets/files/151708025047541","API.jar","application/java-archive"); // <-- would work fine
?>

utils.php中的“下载”功能:

function download($f_location, $f_name, $type){
    header('Content-Description: File Transfer');
    header('Content-Type: '.$type);
    header('Content-Length: ' . filesize($f_location));
    header('Content-Disposition: attachment; filename="' . basename($f_name).'"');
    ob_clean();
    readfile($f_location);
}

“config.php”包含的唯一内容是一些变量。 “utils.php”包含的唯一内容是一些函数,它连接到数据库($ isLoggedIn,hasProduct(...)和getProduct(...)需要。

下载本身很有意思,但它想下载一个内容为零且名称为“download.php”的文件。 在我的评论中你看,如果我在if-block之外尝试相同的功能(使用静态args)下载工作正常。但是如果我尝试在if-block中使用函数(带有静态args),它会给我同样的问题。

有趣的是,几个月前同样的功能仍然有用。

我做错了吗?如何使用授权检查动态下载这些文件(我已经尝试过)?

我希望你理解我的问题:)

1 个答案:

答案 0 :(得分:0)

Download-Manager插件试图抓住下载..

刚刚添加了一个例外/禁用了该附加组件,现在它正在运行!