2014-07-19 101 views
1

我想壓縮用戶選擇的文件,但出於某種原因我得到此錯誤。類ZipArchive的對象無法轉換爲字符串

我使用laravel 4.2

這裏就是誤差從發起的代碼部分。

$zip_name = 'dris-sweet-16-pictures.zip'; 
$zip = new ZipArchive(); 
$zip->open($zip_name, ZipArchive::CREATE); 
foreach ($lg_img as $img) { 
    $zip->addFile(public_path().'/'.$img);      
} 

Response::download($zip, $zip_name, array(
    'content-type'   => 'application/zip', 
    'Content-disposition:' => 'attachment; filename=filename.zip', 
    'Content-Length:'  => filesize($zip_name) 
)); 

$zip->close(); 

回答

0

如下所述:http://laravel.com/docs/responses#special-responses, 此方法的參數是按以下順序:

Response::download($pathToFile, $name, $headers); 

在你的代碼,您傳遞$拉鍊,你的ZipArchive的文件路徑但該方法期望在這裏有一個字符串,所以你的文件在磁盤上的路徑。

乾杯。

+0

ZipArchicve創建的郵件在哪裏? – user3813559

+0

在您的示例中由ZipArchive創建的zip爲$ zip_name,您通過以下代碼創建它: $ zip-> open($ zip_name,ZipArchive :: CREATE); 因此,他通常在您的腳本運行的文件夾上(通過您的示例,我會說歸檔文件位於您的應用程序的根目錄)。 http://php.net/manual/fr/ziparchive.open.php –