
Originariamente inviata da
M4V1
Dal fatto che la classe ZipArchive non è all'interno del tuo namespace ma all'interno del namespace globale di php.
Quindi per usarla dovrai scrivere:
$zip = new \ZipArchive();
Con la \ prima del nome della classe. In questo modo l'autoloader sa dove andare a cercarla.
Inoltre tu usi la variabile $zip che non è mai stata dichiarata, quindi dovrai anche inserire la riga che ti ho messo sopra prima di :
if($zip->open('my_zip_test.zip', ZipArchive::CREATE) === TRUE)
Grazie mille M4V1,
Ho fatto le modifiche che mi hai detto, e ho modificato anche la response per il download, però quando clicco dalla view sul button per eseguire il download ottengo il seguente errore
codice:
La pagina web all'indirizzo http://localhost:8000/raccomandate/export potrebbe essere temporaneamente non disponibile oppure è stata permanentemente spostata a un nuovo indirizzo web.
Questo è il codice che uso
Codice PHP:
public function exportXml(){
$racc = Raccomandata::select('*')->where('isGenerated','=',0)->get->toArray();
//creo un file .ZIP in cui inserisco gli xml relativi alle raccomandate
$zip = new \ZipArchive;foreach($racc as $r){
$xw = xmlwriter_open_memory();
// codice per generale il file xml
$xml = xmlwriter_output_memory($xw);
$zip = new \ZipArchive();
if($zip->open('my_zip_test.zip', ZipArchive::CREATE) === TRUE){
//aggiungo i file xml allo zip
$zip->addFile($response);
//chiudo il file zip
$zip->close();
}
$response = Response::create('OK' ,200);
$response->header('Content-Type', 'application/zip');
$response->header('Content-Transfer-Encoding', 'Binary');
$response->header('Content-Length', $zip);
$response->header('Content-Description', 'File Transfer');
$response->header('Content-Disposition', 'attachment; filename="file.zip"');
$response->header('Content-Transfer-Encoding', 'binary');
return $response;
}
}
Sbaglio nel creare la Response?