首页 > 解决方案 > CodeIgniter 控制器中的函数(download_report())在本地机器上运行,但在服务器上不运行

问题描述

我在名为get_reports()的控制器中有一个名为(下载 excel 文件)的函数Bulkexport

导航到 URL 会http://localhost/mycontroller/bulkexport/get_reports 下载一个 Excel 文件。

我在服务器上有相同的代码,但不是下载它导航到https://example.com/mycontroller/bulkexport/get_reports

并且浏览器抛出以下错误:

无法访问此站点 https://www.example.com/mycontroller/bulkexport/get_reports上的网页可能暂时关闭,或者它可能已永久移至新网址。ERR_INVALID_RESPONSE"

这以前在不同的服务器上工作。一旦我更改为其他服务器,它就无法正常工作。

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
require 'vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;

class Bulkexport extends Mycontroller_Controller {
............
.......

public function get_reports(){

        $id = $this->ion_auth->user()->row()->id;
.............
..........
....

$spreadsheet->getActiveSheet()->setTitle('batches');
        $spreadsheet->setActiveSheetIndex(0);
        /*---------------------------------------------------creating file-----------------------------------*/
        $writer = new Xlsx($spreadsheet);
        $filename = 'Reports';
        header('Content-Type: application/vnd.ms-excel');
        header('Content-Disposition: attachment;filename="'. $filename .'.xlsx"'); 
        header('Cache-Control: max-age=0');
        $writer->save('php://output'); // download file 
    }
}

标签: phpcodeigniter-3

解决方案


确保在服务器中安装了这些扩展(php_gd2、php_xml 和 php_zip)

sudo apt-get install php-zip
sudo apt-get install php-gd
sudo apt-get install php-xml

这将安装最新版本。您可以根据您的 PHP 版本对其进行配置。

例如 sudo apt-get install php5.6-gd (如果您的 php 版本是 5.6)


推荐阅读