2012-09-03 68 views
0

我想寫一個PHP程序,它提供了一個zip文件供下載。我在互聯網上搜索並嘗試了所有的解決方案,但我的問題沒有得到解決。下載Zip文件時顯示的路徑名稱和Zip文件名稱在PHP

我的問題是,當zip文件下載到用戶的計算機時,整個路徑顯示爲zip文件的名稱。

例如: 的路徑Zip文件: 「http://www.websitename.com/folder1/folder2/」 Zip文件的名稱: 「zbc123.zip」

當瀏覽器下載zip文件,該文件的名稱如下: http-_www.websitename.com_folder1_folder2_zbc123.zip

我不希望路徑成爲下載的zip文件的名稱。

我只想要顯示實際的zip文件。

這裏是我的codespec:

$m_item_path_name = "http://www.websitename.com/folder1/folder2/"; 
$m_zip_file_name = "zbc123.zip" 

//Combining the Path and the Zip file name and storing into memory variable 
$m_full_path = $m_item_path_name.$m_zip_file_name; 

header("Pragma: public"); 
header("Expires: 0"); 
header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); 
header("Cache-Control: public"); 
header("Content-Description: File Transfer"); 
header("Content-type: application/octet-stream"); 
header("Content-Disposition: attachment; filename=\"".$m_zip_file_name."\""); 
header("Content-Transfer-Encoding: binary"); 
header("Content-Length: ".filesize($m_item_path_name.$m_zip_file_name)); 
ob_end_flush(); 
@readfile($m_item_path_name.$m_zip_file_name); 

誰能幫我解決這個問題。

任何形式的幫助將不勝感激。

非常感謝。

回答

0

試試這個:

<?php 
$file_names = array('file1.pdf','file2.pdf'); 

//Archive name 
$archive_file_name=$name.'Name_u_want.zip'; 

//Download Files path 
$file_path=$_SERVER['DOCUMENT_ROOT'].'/files/'; 


zipFilesAndDownload($file_names,$archive_file_name,$file_path); 

function zipFilesAndDownload($file_names,$archive_file_name,$file_path) 
{ 
     //echo $file_path;die; 
    $zip = new ZipArchive(); 
    //create the file and throw the error if unsuccessful 
    if ($zip->open($archive_file_name, ZIPARCHIVE::CREATE)!==TRUE) { 
     exit("cannot open <$archive_file_name>\n"); 
    } 
    //add each files of $file_name array to archive 
    foreach($file_names as $files) 
    { 
     $zip->addFile($file_path.$files); 



    } 
    $zip->close(); 
    //then send the headers to foce download the zip file 
    header("Content-type: application/zip"); 
    header("Content-Disposition: attachment; filename=$archive_file_name"); 
     header("Content-length: " . filesize($archive_file_name)); 

    header("Pragma: no-cache"); 
    header("Expires: 0"); 

    readfile("$archive_file_name"); 
    exit; 
} 
?> 
+0

感謝您的幫助...但zip文件及其路徑名是通過數據庫檢索..我不是要建立一個新的zip文件。我已經知道路徑名和zip文件名....我只是想強制下載zip文件。 – mkb

+0

表示你只是想下載一個zip文件?我是對嗎? –

+0

點擊一個鏈接,數據庫有更新,然後我想強制下載一個zip文件,它.... Zip文件的名稱和路徑是從數據庫中的表中檢索希望這有助於.. ... – mkb

相關問題