单击链接后自动下载CSV文件

时间:2016-04-08 09:49:49

标签: php csv

我使用PHP创建csvs文件,将它们放入文件夹然后压缩文件夹。这一切都很完美但是我无法获得用户创建的自动下载的ZIP。

编辑

它现在可以在取出重定向后运行,但是在下载时它缺少.zip扩展名,是否有办法强制执行此操作?

我的拉链存储在根

中的/ zip中

这是我的代码

 // Add the folder we just created to a zip file.
$zip_name = 'groups_' . time();
$zip_directory = '/zips';
$zip = new zip( $zip_name, $zip_directory );
$zip->add_directory( 'group-csvs' );
$zip->save();

$zip_path = $zip->get_zip_path();

header( "Content-Description: File Transfer" );
header( "Content-type: application/zip" );
header( "Content-Disposition: attachment; filename=" . $zip_name . "");
header( "Content-Length: " . filesize( $zip_path ) );

readfile($zip_path);

这是我的zip类中的get path方法和构造函数

   public function __construct( $file_name, $zip_directory)
   {
        $this->zip = new ZipArchive();
        $this->path = dirname( __FILE__ ) . $zip_directory . $file_name . '.zip';
        $this->zip->open( $this->path, ZipArchive::CREATE );
    }

   /**
     * Get the absolute path to the zip file
     * @return string
     */
    public function get_zip_path()
    {
        return $this->path;
    }   

我没有得到任何错误,它只是创建了拉链然后没有任何反应

1 个答案:

答案 0 :(得分:0)

将.zip扩展名添加到您的文件名称: $zip_name = 'groups_' . time() . '.zip'; 您在自定义zip类中使用的扩展名不会附加到主文件中的变量。