PDA

View Full Version : سوال: کپی کردن تمام عکس های یک دایرکتوری



ravand
سه شنبه 06 تیر 1391, 20:40 عصر
سلام.
میخوام با دستوری تمام عکس های یک دایرکتوری رو کپی کنم و به داخل یک دایرکتوری دیگه بریزم.
و اگه عکس های دایرکتوری تکراری بود دیگه روش پیست نشه.
برای مثال من یه دایرکتوری به نام upload دارم که یه سری عکس توش هست که میخوام کپی کنم و به داخل دایرکتوری aks بریزم . و اگه عکس هایی که داخل دایرکتوری upload هست یه سری از اون ها داخل دایرکتور aks وجود داره و تکراری هست دیگه کپی نشه .
متشکرم.

MMSHFE
سه شنبه 06 تیر 1391, 20:52 عصر
کار سختی نیست. کافیه فایلهای تصویر پوشه upload رو استخراج کنید و یکی یکی چک کنید اگه توی پوشه aks نبود، اونوقت اونجا کپی کنید. مثال:


$dir = getcwd();
$images = glob('upload/*.{jpg,bmp,png,gif,tga}', GLOB_BRACE);
foreach($images as $image) {
if(!file_exists('aks/'.$image)) {
copy('upload/'.$image, 'aks/'.$image);
}
}

ayub_coder
سه شنبه 06 تیر 1391, 21:51 عصر
اگر هم درون پوشه پوشه های دیگه هم موجوده این کار رو باید به صورت recursive انجام بدین

ravand
چهارشنبه 07 تیر 1391, 07:58 صبح
مهندس.
این چیزی که شما داده بودید اخطار میداد.
من امدم اول یه پوشه ساختم با نام upload و یه پوشه یا نام aks و یه پوشه ی دیگه داخل پوشه ی aks ساختم با نام upload.
بعد امدم این کدها رو نوشتم.

<?php
$dir = getcwd();
$images = glob('upload/*.{jpg,bmp,png,gif,tga}', GLOB_BRACE);
foreach($images as $image) {
echo 'aks/'.$image;
echo "<br>";
if(!file_exists('aks/'.$image)) {
copy($image, 'aks/'.$image);
}
}
?>
اینطوری مشکلم حل شد و فایل ها داخل پوشه ی upload از پوشه ی aks ریخته میشه.
به کدهای من دقت کنید علت رو می فهمید.
متشکرم.

ravand
چهارشنبه 07 تیر 1391, 08:08 صبح
تحلیل کد هم اینطوری شد.
خط اول که نمی دونم اینجا چیکار میکنه.
خط دوم فایل های داخل پوشه ی upload رو به صورت آرایه در میاره و foreach هم مقادیر آرایه رو قرار ردیف کنه و برای خوندن مقادیر آرایه بهش نیاز داریم و file_exists هم برای بررسی وجود فایل در پوشه ی aks هست. که اگر عکسی که میخواد به داخلش کپی شه وجود نداشته باشه به خط بعدی بره. و دستور کپی هم که معلومه. عکس های پوشه ی upload رو به پوشه ی upload در پوشه ی aks کپی میکنه.

ravand
چهارشنبه 07 تیر 1391, 11:31 صبح
این روش یه مشکل داره.
الان من میخوام از این روش برای بک آپ گرفتن عکس های داخل هاستم استفاده کنم.
ولی این کدهایی که ما نوشتیم عکس رو داخل خود هاست کپی میکنه و دانلود نمیشه. که توی درایوهای کامپیوتر ما کپی بشه.
متشکرم

hamed-php
چهارشنبه 07 تیر 1391, 15:46 عصر
این روش یه مشکل داره.
الان من میخوام از این روش برای بک آپ گرفتن عکس های داخل هاستم استفاده کنم.
ولی این کدهایی که ما نوشتیم عکس رو داخل خود هاست کپی میکنه و دانلود نمیشه. که توی درایوهای کامپیوتر ما کپی بشه.
متشکرم

خوب اگه قرار بود تو کامیوتر کلاینت کپی بشه که امنیت کامپیوتر میره زیر سوال. مگه با پی اچ پی میشه این دسترسی رو ایجاد گرد؟

ravand
چهارشنبه 07 تیر 1391, 15:47 عصر
خب دانلود که میشه؟ میشه پوشه ای که عکس توش هست رو دانلود کرد نمیشه؟

ravand
چهارشنبه 07 تیر 1391, 15:55 عصر
یه کار دیگه میکنیم.
میشه عکس رو توی فایل زیپ ریخت؟ که بعدا راحت دانلود بشه؟
من که میخواستم از اون روش استفاده کنم برای این بود که اگه تعداد عکس ها زیاد باشه و هر روز که بخوام بک آپ بگیرم مجبور نباشم همه رو هر روز ازشون بک اپ بگیرم.
اگه این روش ها هم جواب نداد میشه عکس رو از روی هاستی به هاست دیگه کپی کرد؟

امید امرایی
چهارشنبه 07 تیر 1391, 16:00 عصر
پوشه رو نمی شه دانلود کرد دوست عزیز
اما می تونید Zip کنید بعد دانلود کنید

ravand
چهارشنبه 07 تیر 1391, 16:08 عصر
میشه عکس رو توی فایل زیپ ریخت؟ که بعدا راحت دانلود بشه؟
منم برای همین گفتم زیپ کنم.