Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.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_Codeigniter_Codeigniter 4 - Fatal编程技术网

在php中强制下载文件

在php中强制下载文件,php,codeigniter,codeigniter-4,Php,Codeigniter,Codeigniter 4,我刚刚完成了我的项目并转移到live server,这意味着我的开发部分(XAMPP)的所有内容和程序都运行得很好,我还将这个项目转移到了live共享托管服务器(Name便宜)上进行测试。在我购买了VPS服务器并安装了cpanel之前,一切都很好。当我上传我的项目并使用PHP7.3时,文件强制下载的情况不再正常。这是我的密码 //* Download item zip files public function downloadItemZipFiles($id) { $settingsM

我刚刚完成了我的项目并转移到live server,这意味着我的开发部分(XAMPP)的所有内容和程序都运行得很好,我还将这个项目转移到了live共享托管服务器(Name便宜)上进行测试。在我购买了VPS服务器并安装了cpanel之前,一切都很好。当我上传我的项目并使用PHP7.3时,文件强制下载的情况不再正常。这是我的密码

//* Download item zip files
public function downloadItemZipFiles($id)
{
    $settingsModel = new AdminPanel();
    $itemModel = new ItemsModel();
    $siteInfo = $settingsModel->getApplicationInfomations();
    $item = $itemModel->getItemByIdOnly($id);
    $name = $siteInfo->ss_name . '-' . $item->item_id . '-' . $item->item_slug.'.zip';
    $path = item_zip_file($item->item_id);

    if (is_file($path)) {
        if (ini_get('zlib.output_compression')) {
            ini_set('zlib.output_compression', 'Off');
        }

        $file = new \CodeIgniter\Files\File(strval($path));
        $mime = $file->guessExtension();
        header('Pragma: public');
        header('Expires: 0');
        header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
        header('Last-Modified: '.gmdate('D, d M Y H:i:s', filemtime($path)).' GMT');
        header('Cache-Control: private', false);
        header('Content-Type: '.$mime);
        header('Content-Disposition: attachment; filename="'.basename($name).'"');
        header('Content-Transfer-Encoding: binary');
        // header('Content-Length: '.filesize($path));
        header('Connection: close');
        readfile($path);
        exit();
    }
    else
    {
        echo "not found";
    }
}
如果我试图强制下载文件,我会收到此浏览器错误

无法访问此网站。位于的网页可能暂时关闭,或者可能已永久移动到新的网址。 错误\u无效\u响应


如何克服此错误?

请选择您的CI版本?Codeigniter版本4可能是浏览器问题,消息似乎来自Chrome,请与FF联系。您可能还没有将您的htaccess文件从http(dev)更新为https(prod)?@Vicket感谢您的回复我尝试了我所有的浏览器Chrome、Opera、MS Edge相同的输出此代码在开发模式(Xampp)下与浏览器一起工作,也在我的测试服务器(namescape)共享热处理上工作,直到我购买了我的vps,一切都出了问题。如果SSL证书设置正确,请与您的VPS提供商进行相同的代码设置检查,并与他们一起打开支持票证,这显然是一个配置问题,因为在共享主机上一切都进行得很顺利。还要再次检查VPS php版本!即使是不同的php.ini也可能是一个问题,请问您的CI版本是什么?Codeigniter版本4可能是浏览器问题,消息似乎来自Chrome,请与FF联系。您可能还没有将您的htaccess文件从http(dev)更新为https(prod)?@Vicket感谢您的回复我尝试了我所有的浏览器Chrome、Opera、MS Edge相同的输出此代码在开发模式(Xampp)下与浏览器一起工作,也在我的测试服务器(namescape)共享热处理上工作,直到我购买了我的vps,一切都出了问题。如果SSL证书设置正确,请与您的VPS提供商进行相同的代码设置检查,并与他们一起打开支持票证,这显然是一个配置问题,因为在共享主机上一切都进行得很顺利。还要再次检查VPS php版本!即使是不同的php.ini也可能是一个问题