2016-03-08 45 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

很高兴它的工作:) –

相关问题