Symfony2 create and download zip file

后端 未结 7 811
Happy的楠姐
Happy的楠姐 2020-12-15 06:51

I have one application that upload some files and then I can compress as zip file and download.

The export action:

public function exportAction() {
          


        
7条回答
  •  既然无缘
    2020-12-15 07:05

    Work for me. Where $archive_file_name = 'your_path_to_file_from_root/filename.zip'.

    $zip = new \ZipArchive();
    
    if ($zip->open($archive_file_name, \ZIPARCHIVE::CREATE | \ZIPARCHIVE::OVERWRITE) === TRUE) {
      foreach ($files_data as $file_data) {
    
        $fileUri = \Drupal::service('file_system')->realpath($file_data['file_url']);
        $filename = $file_data['folder'] . $file_data['filename'];
        $zip->addFile($fileUri, $filename);
      }
      $zip->close();
    }
    
    
    $response = new Response();
    
    $response->headers->set('Cache-Control', 'private');
    $response->headers->set('Content-type', 'application/zip');
    $response->headers->set('Content-Disposition', 'attachment; filename="' . basename($archive_file_name) . '"');
    $response->headers->set('Content-length', filesize($archive_file_name));
    
    // Send headers before outputting anything.
    $response->sendHeaders();
    $response->setContent(readfile($archive_file_name));
    return $response;
    

提交回复
热议问题