پاسخ : مشکل با فایل zip در php
پرمیژن ها شاید؟ از چه کلاسی استفاده میکنید؟
پاسخ : مشکل با فایل zip در php
دلايل مختلفي ميتونه داشته باشه
چيزهايي كه خودم بهش برخورد كردم مثل فولدرهاي خالي،فايل هاي خالي ، نام هاي غير استاندارد، مشكلات پرميشن و ... هستند
بهرحال همه اين ها بستگي داره كدتون رو چجوري نوشته باشيد ، بدون مشاهده كد نميشه نظر فني داد.
پاسخ : مشکل با فایل zip در php
همه موارد بالا رو چک کردم ولی ایرادی نداره !
کدش این هست: path = "D:/new";
ini_set("max_execution_time", 300);
$zip = new ZipArchive();
if ($zip->open($path . "/my_zip.zip", ZIPARCHIVE::CREATE) !== TRUE)
{
die ("Could not open archive");
}
$iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path . "/"));
foreach ($iterator as $key=>$value)
{
if ($zip->addFile(realpath($key), $key)) or die ("ERROR: Could not add file: $key");
}
$zip->close();
$file = $path . '/my_zip.zip';
header("Expires: 0");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header("Content-type: application/pdf");
header('Content-length: '. filesize($file));
header('Content-disposition: attachment; filename='.basename($file));
readfile($file);
unlink($file);
پاسخ : مشکل با فایل zip در php
نمونهی دقیق تر این کد توی php.net بخش معرفی کلاس zip هست که به صورت یک تابع recursive نوشته شده. اونو استفاده کنید.
پاسخ : مشکل با فایل zip در php
من کدهای زیادی رو امتحان کردم اما فقط از همین کد جواب گرفتم. توی php.net هم چیزی پیدا نکردم واسه زیپ کردن. اگه آدرس دقیق صفحه ای که میگین رو بذارین ممنون میشم
پاسخ : مشکل با فایل zip در php
کد:
http://php.net/manual/en/book.zip.php
http://php.net/manual/en/ref.zip.php
http://davidwalsh.name/create-zip-php
پاسخ : مشکل با فایل zip در php
لینک هایی که دوستمون این بالا دادن کاملا کار شما رو راه میندازه. ولی به هر حال این رو هم ببینید.
پاسخ : مشکل با فایل zip در php
مشکلم حل شد. ممنون از همه. کدی که از سایت stackoverflow.com برام گذاشتین کامل بود
فقط یه سوال دیگه دارم. الان زمانی که فایل زیپ رو میسازه، داخل فایل زیپ به همون ترتیبی که بهش مسیر داده شده، از روت هارد فولدر تو فولدر میسازه و یکی یکی باید فولدرها باز بشه که به فولدر موردنظر که زیپ شده برسم (یعنی از روت هارد، مسیر رو نشون میده تو فایل زیپ). که این از نظر امنیت خیلی مشکل داره. چطور میشه این مشکل رو حل کرد به طوری که زمانی که فایل زیپ رو باز میکنم فقط فولدر مورد نظر که میخوام زیپ بشه رو نشون بده نه اینکه از ابتدای هارد مسیر رو یکی یکی نشون بده ؟؟؟؟
پاسخ : مشکل با فایل zip در php
باید برید و متد
رو نگاه کنید, یه آرگومان می گیره که path ها رو relative یا absolute می کنه.