2016-04-08 71 views
0

我使用PHP創建csvs文件,將它們放入一個文件夾,然後壓縮文件夾。這一切都完美的作品,但我不能然後得到用戶創建自動下載的ZIP。單擊鏈接後自動下載CSV文件

編輯

現在取出後重定向的工作原理,但它缺乏.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路徑方法和構造

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; 
    } 

我不沒有任何錯誤,它只是創建zip然後沒有任何反應

+0

你的''zip-> save()'調用原始'ZipArchive'類的'close()'嗎? –

+0

是公共功能保存() { $ this-> zip-> close(); } – pocockn

回答

0

添加.zip分機你的文件的名稱: $zip_name = 'groups_' . time() . '.zip'; 您在自定義壓縮類中使用的擴展名不會被附加到主文件中的變量。