在WordPress模板中使用php readfile()时显示空白页

时间:2019-04-24 09:28:49

标签: php wordpress

我有一个表格,用户可以填写他们的详细信息和序列号,然后下载软件安装程序,并将其命名为输入。例如serial.exe

提交表单后,我检查文件是否存在,然后尝试下载文件:

    $directory = get_template_directory();
    $file = $directory . '/filename.exe';

    if (file_exists($file)) {

        header('Content-Description: File Transfer');
        header('Content-Type: application/octet-stream');
        header('Content-Disposition: attachment; filename="'.$Serial.'.exe"');
        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));

        readfile($file);
        exit;
}

这会导致加载冻结,此代码下方未加载任何内容,但我看不到任何错误,也没有生成文件。

如果我将文件更改为.png,则代码有效。

我还将相同的代码复制到了wordpress之外的php页面中,相同的代码可以根据需要运行并下载文件。

Wordpress是否有可能由于其.exe而以某种方式阻止了readfile()请求?

编辑:

文件大小而不是文件类型似乎有问题。

一个小的.exe文件可以正常工作并已正确下载。

0 个答案:

没有答案