2016-03-08 48 views
2

我使用下面的代碼創建了mp3的zip文件。我能夠成功地創建zip。但如何才能使我之前的zip每個文件重命名......在php中創建zip文件並在添加之前重命名每個文件

# define file array 
    $files = array(
     'http://google.com/images/logo.png', 
     'http://upload.wikimedia.org/wikipedia/commons/thumb/5/53/Wikipedia-logo-en-    big.png/220px-Wikipedia-logo-en-big.png' 
    ); 

    # create new zip opbject 
    $zip = new ZipArchive(); 

    # create a temp file & open it 
    $tmp_file = tempnam('.',''); 
    $zip->open($tmp_file, ZipArchive::CREATE); 

    # loop through each file 
    foreach($files as $file){ 

     # download file 
     $download_file = file_get_contents($file); 

     #add it to the zip 
     $zip->addFromString(basename($file),$download_file); 

    } 

    # close zip 
    $zip->close(); 

    # send the file to the browser as a download 
    header('Content-disposition: attachment; filename=download.zip'); 
    header('Content-type: application/zip'); 
    readfile($tmp_file); 
+0

爲什麼不直接改變'第一個參數$ zip-> addFromString (基名($文件),$ download_file);'? – syck

+0

它是否爲zip的名稱的某種模式?或者將zip文件的名稱與mp3相同? –

+0

沒有文件在zip將不會有與MP3相同的名稱 –

回答

4

您可以使用renameName的addFromString方法行之後:

$zip->addFromString(basename($file), $download_file); 
$zip->renameName(basename($file), 'nicename.mp3'); 
+0

謝謝@william janoti ..多數民衆贊成什麼確切地爲我工作我嘗試過addfiles方法,但它沒有奏效也...再次感謝.. –

+0

很高興它的工作:) –

相關問題