PDA

View Full Version : بک اپ گیری از عکس کاربران روی سرور



DelDard
جمعه 28 شهریور 1393, 16:05 عصر
سلام دوستان
سوال اول: از فرمت ها فایل های فشرده کدوم کم حجم تره؟ (rar, tar,wim ,7z, zip یا هر چی دیگه)
سوال دوم: چه طور از طریق فایل php یه کامند به سرور (لینوکس) بدم که عکسای یه فلدر رو تمام تو یه فایل فشرده کنه ؟ و اگه تو تنظیمات سرور یا کُدم بود که command اجرا نشه اون وقت چه طور از طریق php بک اپ بگیرم از عکسا؟

کلا اگر روش دیگه ایی هم برا این کار بلدید ممنون میشم بگید

تشکر ازتون

Unique
جمعه 28 شهریور 1393, 21:23 عصر
پاسخ اول : راستش من معمولا zip یا tar میکنم. به نظرم همون zip در حالت خیلی فشرده مناسبه ! اما کلا عکس و فیلم و کلا media فکر نمیکنم فشرده کردنشون تاثیر قابل ملاحظه ای داشته باشه (اصل اشاید هیچ تاثیری نداشته باشه) معمولا این ها را archive میکنیم ! و compress معنی نمیده !

پاسخ دوم : کلا بهتره دنبال command دادن به سیستم عامل توی لینوکس اونم سیستم های shared که safe mode روی اون ها on هست نریم و با خود php انجام بدیم. در مورد کد هم میتونید توی google بگردین و براحتی به جواب برسین اما حالا برای اینکه کارتون راه بیفته من کد میگذارم. کد از سایت stackoverflow (http://stackoverflow.com/questions/4914750/how-to-zip-a-whole-folder-using-php) هستش.


$rootPath = realpath('path to folder');

$zip = new ZipArchive;
$zip->open('file.zip', ZipArchive::CREATE);

$files = new RecursiveIteratorIterator(
new RecursiveDirectoryIterator($rootPath),
RecursiveIteratorIterator::LEAVES_ONLY
);

foreach ($files as $name => $file) {
$filePath = $file->getRealPath();
$zip->addFile($filePath);
}
$zip->close();

header('Content-Type: application/zip');
header("Content-Disposition: attachment; filename='file.zip'");
header('Content-Length: ' . filesize('file.zip'));
readfile('file.zip');
unlink('file.zip');
exit(0);

پ.ن : هاست های معتبر ZipArchive را حتما نصب دارند ولی اکه نداشتند یک ticket بزنید براتون باز میکنند ! اگه هم عشوه خرکی اومدند که ما امنیتمون فلان و از این چرت و پرتا ! هاستتون را عوض کنید که اصلا ارزش سلام و احوال پرسی هم ندارند.

DelDard
شنبه 29 شهریور 1393, 08:17 صبح
خیلی خیلی لطف کردی Unique (http://barnamenevis.org/member.php?11933-Unique) عزیز. مشکلم حل شد. ممنون