PDA

View Full Version : آپلود n تا فايل



hamid67fathi
دوشنبه 08 تیر 1388, 09:29 صبح
سلام
کسی ميدون چطور ميشه تمام فايل های درون يک فولدر رو آپلود کرد ؟

__ziXet__
دوشنبه 08 تیر 1388, 09:47 صبح
سلام
کسی ميدون چطور ميشه تمام فايل های درون يک فولدر رو آپلود کرد ؟
می نشود!
شما از فلش میتونید استفاده کنید!
در غیر این صورت با فرم معمولی فقط میتونید یک تک فایل رو آپلود کنید مگر اینکه چند تا input بذاری که بازم فایل های یه فولدرو نمیتونی یدفه آپلود کنی

soheil.moradi
دوشنبه 08 تیر 1388, 22:31 عصر
البته میشه این کار را کرد، تقریباً خیلی هم آسون هست... فقط تنها کاری که شما باید به صورت دستی انجام بدی، این هست که آدرس اون Directory (فولدر)ی که می خواهی فایلهاش ارسال بشه را باید به صورت دستی ارسال کنی، بعد میای با استفاده از تابع های از پیش تعریف شده برای خوندن فایلهای داخل یک فولدر، اسامی فایلها را پیدا می کنی و یک به یک داخل همون حلقه ای که فایلها را لیست می کنه، اونها را ارسال می کنی.
میشه فقط یکم سخته
اگه خواستی کاملش را برات توضیح می دم
فعلاً وقت ندارم.

__ziXet__
دوشنبه 08 تیر 1388, 23:24 عصر
البته میشه این کار را کرد، تقریباً خیلی هم آسون هست... فقط تنها کاری که شما باید به صورت دستی انجام بدی، این هست که آدرس اون Directory (فولدر)ی که می خواهی فایلهاش ارسال بشه را باید به صورت دستی ارسال کنی، بعد میای با استفاده از تابع های از پیش تعریف شده برای خوندن فایلهای داخل یک فولدر، اسامی فایلها را پیدا می کنی و یک به یک داخل همون حلقه ای که فایلها را لیست می کنه، اونها را ارسال می کنی.
میشه فقط یکم سخته
اگه خواستی کاملش را برات توضیح می دم
فعلاً وقت ندارم.
میشه بیشتر توضیح بدی؟!

hamid67fathi
سه شنبه 09 تیر 1388, 08:14 صبح
ما مشتاقيم که بيشتر بدونيم

soheil.moradi
سه شنبه 09 تیر 1388, 13:30 عصر
دوستان عزيز
من کدش را نوشتم و میگذارم، البته برای انعطاف پذیری بیشتر باید خودتون بیشتر باهاش ور برید، ولی کل کد همینه، حالا اگر راهی تونستید پیدا کنید که مثلاً با یک Input فایل بتونید آدرس را هم بگیرید که چه بهتر، البته، من این کار را هم کردم و تو کد نوشتم، اما بدلیل اینکه تو فایرفاکس 3 مشکل میزد و همچنین توی اکسپلورر fakepath میداد، برش داشتم. ولی کار خاصی نیست، میشه با Ajax آدرس را هم بدست آورد.

در ضمن به یاد داشته باشید که فولدری با نام upload_folder که با chmod 777 هم باشه، باید کنار فایل php این کد قرار بگیره.
کد:

<?php
if($_POST['u_directory']){
if(file_exists($_POST['u_directory'])){
if($handle = opendir($_POST['u_directory'])){
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
if(is_dir($_POST['u_directory'].$file)) continue;
@unlink("upload_folder/".$file);
@copy($_POST['u_directory'].$file, "upload_folder/".$file);
}
}
closedir($handle);
exit('Your files has been uploaded!<br /><a href="javascript:history.back(-1);">&lt; Back</a>');
}
}
}

?>
<form method="post">
Enter your directory path: <input type="text" name="u_directory" /> <input type="submit" value="Send Directory Path" />
</form>

TheMohammad
سه شنبه 09 تیر 1388, 17:19 عصر
این کپی میکنه ! آپلود نمیکنه که !؟!

امیـرحسین
سه شنبه 09 تیر 1388, 17:39 عصر
این اسکریپت، نام فولدر سرور رو میگیره و فایلهاش رو تو یک فولدر دیگه کپی می کنه.
به نظر من واسه این کار لازمه وقتی آدرس فولدر تو یک فیلد معمولی تایپ شد توسط یک زبان سمت کلاینت، محتویات اون فولدر لیست شه و برای هر کدوم یک فیلد فایل با مقدار آدرس فایل ارسال شه.

من فکر نمی کنم جاوااسکریپت اجازه دسترسی به لیست فایلها داشته باشه و از زبانهای دیگه هم اطلاع ندارم.

soheil.moradi
چهارشنبه 10 تیر 1388, 12:25 عصر
البته شماها درست میگید، این کپی میکنه، و فقط میشه از این روش برای localhost استفاده کرد.
اما برای قرار دادن این برنامه روی سرور راهی وجود نداره الا فلش که اون هم باید تو بخش مخصوص به خودش مطرح بشه و من هم به شخصه نمیتونم در این رابطه کمکی بکنم.
اگر هم از copy استفاده کردم، به خاطر همین بود که هیچ فیلد فایلی در فرم استفاده نشده و در واقع نمیتونیم هم استفاده بکنیم.

اما در مورد اینکه آیا میشه به تعداد فایلهای موجود در اون فولدر، فیلد فایل بسازیم و مقدار براشون set بکنیم، باید بگم که به هیچ وجه نمیشه، این کار بخاطر دلایل امنیتی، در تمام مرورگرها انجام نمیشه. یعنی شما به هیچ وجه نمیتونی از بیرون از فیلد فایل، برای فیلد فایل value خاصی را set بکنی.

به هر جهت، تنها کمکی که میتونستم بکنم همین بود. روی localhost جواب میده.
موفق باشید.

__ziXet__
چهارشنبه 10 تیر 1388, 13:31 عصر
البته شماها درست میگید، این کپی میکنه، و فقط میشه از این روش برای localhost استفاده کرد.
اما برای قرار دادن این برنامه روی سرور راهی وجود نداره الا فلش که اون هم باید تو بخش مخصوص به خودش مطرح بشه و من هم به شخصه نمیتونم در این رابطه کمکی بکنم.
اگر هم از copy استفاده کردم، به خاطر همین بود که هیچ فیلد فایلی در فرم استفاده نشده و در واقع نمیتونیم هم استفاده بکنیم.

اما در مورد اینکه آیا میشه به تعداد فایلهای موجود در اون فولدر، فیلد فایل بسازیم و مقدار براشون set بکنیم، باید بگم که به هیچ وجه نمیشه، این کار بخاطر دلایل امنیتی، در تمام مرورگرها انجام نمیشه. یعنی شما به هیچ وجه نمیتونی از بیرون از فیلد فایل، برای فیلد فایل value خاصی را set بکنی.

به هر جهت، تنها کمکی که میتونستم بکنم همین بود. روی localhost جواب میده.
موفق باشید.
عزیزم ما که همون اول گفیتم!

پ.ن:تنها راه فلش هست