انجمن عمومی گسترش فناوری آگو
دانلود چند فایل با استفاده از header ها در PHP - نسخه‌ی قابل چاپ

+- انجمن عمومی گسترش فناوری آگو (http://forums.ago.ir)
+-- انجمن: انجمن های عمومی گسترش فناوری آگو (/forumdisplay.php?fid=1)
+--- انجمن: برنامه نویسی (/forumdisplay.php?fid=13)
+--- موضوع: دانلود چند فایل با استفاده از header ها در PHP (/showthread.php?tid=2264)



دانلود چند فایل با استفاده از header ها در PHP - agotd - 12-28-2013 03:04 PM

شاید با این مشکل بر خورده باشید که نیاز باشه چند فایل رو به وسیله header برای کاربر قابل دانلود کنید.اما در اصل چنین چیزی امکان پذیر نیست و header فقط میتونه یک فایل رو برای دانلود به سمت کاربر ارسال کنه.
راه حل این روش اینه که ابتدا فایلهاتون رو فشرده کنید سپس به سمت کاربر بفرستید.
با استفاده از کد زیر میتونید چند فایل رو باهم فشرده کنید و با استفاده از header ها دانلود کنید.

کد php:
function zipFilesAndDownload($file_names,$archive_file_name,$file_path)
{
  
//create the object
  
$zip = new ZipArchive();
  
//create the file and throw the error if unsuccessful
  
if ($zip->open($archive_file_nameZIPARCHIVE::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,$files);
  }
  
$zip->close();

  
header("Content-type: application/zip");
  
header("Content-Disposition: attachment; filename=$archive_file_name");
  
header("Pragma: no-cache");
  
header("Expires: 0");
  
readfile("$archive_file_name");
  exit;


برای استفاده از این تابع هم به صورت زیر عمل میکنیم :

کد php:
$file_names=array('test.php','test1.txt');
  
$archive_file_name='zipped.zip';
  
$file_path=dirname(__FILE__).'/';
  
zipFilesAndDownload($file_names,$archive_file_name,$file_path); 

دیدن لینک ها برای شما امکان پذیر نیست. لطفا ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید.