PDA

View Full Version : سوال: ارسال یک فایل بر روی کلاینت



janbozorgi
سه شنبه 30 مهر 1387, 10:26 صبح
با سلام
میخواهم یک صفحه خاص روی سرور را وقتی که کاربر بر روی دکمه ای کلیک میکند، بر روی سیستم کاربر ذخیره کنم.



header("Content-Disposition:attachment; filename=zip/ziped.zip");


وقتی که از دستور بالا استفاده میکند بجای آنکه مثلا فایل فشرده من را در پوشه zip بخواند از کاربر فقط درخواست ذخیره شدن یک فایل را با نام ziped.zip میکند که طبیعی است بعد از ذخیره شدن این فایل خالی است. لطفا راهنمایی بفرمایید.
از کمک شما ممنونم

janbozorgi
چهارشنبه 01 آبان 1387, 11:21 صبح
سلام با تشکر از این همه کمک
به کد زیر نگاه کنید:



<?php
ob_start();
$filename = "text.txt";
$fp = fopen($filename,"w+");
fwrite($fp,"SalamSalamSalamSalamSalamSalamSalamSalamSalamSalam SalamSalamSalamSalamSalamSalamSalamSalamSalamSalam Salam");
fclose($fp);

$zip = new ZipArchive;
$zipname ="zip.zip";
$res = $zip->open($zipname, ZIPARCHIVE::CREATE);
if ($res === TRUE) {
$zip->addFile($filename);
$zip->close();
echo 'ok';
} else {
echo 'failed';
}
header('Pragma: public');
header('Content-type: application/zip');
header('Content-Disposition: attachment; filename="'.$zipname.'"');
readfile($zipname);
?>



حالا دو تا مشکل دارم اولا اینکه ZIPARCHIVE نمیشناسه با اینکه توی فایل تنظیمات سمی کولون مربوط به دی ال ال فایلهای فشرده رو برداشتم.
ثانیا وقتی یک فایل فشرده پیش فرض رو میزارم یک فایل خالی دانلود میشه.
لطفا سریعتر راهنمایی بفرمایید. با تشکر

janbozorgi
پنج شنبه 02 آبان 1387, 13:26 عصر
البته قسمت اولش حل شد ولی قسمت دوم هنوز به قوت خودش باقیست یعنی وقتی از کد زیر برای ارسال فایل استفاده میکنم فایلی که روی سیستم کلایت میشینه غیر قابل بازشدنه و پیام "این فایل فشرده خراب است" مشاهده میشود. زحمت بکشید راهنمایی بفرمایید.



$zipname='ziped.zip';
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false);
header("Content-Type: application/force-download");
header("Content-Disposition: attachment; filename=".$zipname);
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize($zipname));
readfile("$zipname");


با تشکر