2017-07-05 99 views
2

我有一個用於創建圖像的zip腳本。它工作得很好!更改使用php創建的zip文件的名稱

create_zip($files_to_zip, 'zip/download-'.$id_account.'-'.$time.'.zip'); 

function create_zip($files = array(),$destination = '',$overwrite = true) { 

     if(file_exists($destination) && !$overwrite) { return false; } 
     $valid_files = array(); 
     if(is_array($files)) { 
      foreach($files as $file) { 
       if(file_exists($file)) { 
        $valid_files[] = $file; 
       } 
      } 
     } 
     if(count($valid_files)) { 
      $zip = new ZipArchive(); 
      if($zip->open($destination,$overwrite ? ZIPARCHIVE::OVERWRITE : ZIPARCHIVE::CREATE) !== true) { 
       return false; 
      } 
      foreach($valid_files as $file) { 
       $zip->addFile($file,$file); 
      } 
      $zip->close(); 

      return file_exists($destination); 
     } 
     else { return false; } 
    } 

當我下載的文件,這是很命名爲zip/download-'.$id_account.'-'.$time.'.zip 但是,當我想提取此,提取文件夾始終被命名爲filesresult

請問你有什麼想法將我的解壓縮文件重命名爲另一個名稱嗎?

非常感謝!

回答

0

您可以使用此代碼來創建zip文件。

做這樣

$File = 'path' . time() . '.zip'; 
$zip = new \ZipArchive(); 
$res = $zip->open($File, \ZipArchive::CREATE); 

if ($res === TRUE) { 
    $zip->addFile($filename); 
    $zip->close(); 
} 
header("Content-Type: application/zip"); 
header("Content-Disposition: attachment; filename=\"" . basename($File) . "\""); 
header("Content-Length: " . filesize($File)); 
header("Pragma: no-cache"); 
header("Expires: 0"); 
readfile($File); 
header("Connection: close"); 

在你的情況,你只是錯過頭部分
只需將代碼頭部分添加到您的代碼中,那麼它就可以爲您工作。

相關問題