الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كود تحميل عدة ملفات الى Webserver

بدأه Mohammad Hussein في 4 أبريل 2009 · 3 رد · 460 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكــم ورحمـة الله وبركاتــه ،،

الموضوع هو اني اعمل على تحميل عدة ملفات, و لعدة انوع ( PDF, Doc, JPEG, HTML , Gif ) الى مجلدات موجودة على web server ,

من خلال صفحة PHP , بحيث يدخل المستخدم عنوان و تاريخ ثم يختار الملفات للتحميل. و يعمل بشكل جيد, جميع البيانات تدخل الى جدول قاعدة البيانات بما فيها اسماء الملفات, لكن

المشكلة هي ان المجلد الموجود على السيرفر( مسار التحميل ) لا يقبل عميلة التحميل الا اذا كانت الصلاحيات الممنوحة له هي 777 , و هذا طبعا غير امن.

اقترح علي البعض استخدام دالة Chmod بعد امر التحميل في كود تحميل, و رغم اني جربت, لكن لم ينجح بتغير الصلاحية.

السيرفير الذي لدي يعمل تحت بيئة linux.

* البعض نصحني بتخزين الملفات في قاعدة البيانات ( لدي MYSQL ) , لكن لم اجرب هذة الطريقة من قبل.

هذا هو كود التحميل:

<?


$uploadsNeeded = 2;
for($i = 1; $i <= $uploadsNeeded; $i++){

$file_name = $_FILES['uploadFile'. $i]['name'];
// strip file_name of slashes
$file_name = stripslashes($file_name);
$file_name = str_replace("'","",$file_name);


//chmod($document_type,0777);
$copy = copy($_FILES['uploadFile'. $i]['tmp_name'],'Documents_path/'.$document_type.'/' . $file_name); 
chmod($document_type,0777);
 // prompt if successfully copied
 if($copy){
 echo "$file_name | uploaded sucessfully!<br>";
 }else{
 echo "$file_name | could not be uploaded!<br>";
 }

 $file_name1 = stripslashes($file_name);
$file_name1 = str_replace("'","",$file_name);

$file_name2 = stripslashes($file_name);
$file_name2 = str_replace("'","",$file_name);

$file_name1 = $_FILES['uploadFile'. 1]['name'];
$file_name2 = $_FILES['uploadFile'. 2]['name'];
}
?>

كيف يمكن تغيير صلاحيات مجلد $document_type و بالمناسبة اسم المجلد هنا عبار عن رقم يأخذ قيمتة من menu في نفس النموذج.

و هل لكون اسم المجلد رقم يأتي من قيمة في نفس النموذج علاقة؟

مع خالص التحيات

محمد

#2

مرحبا

ما في حدا عندوا رد او جواب مساعد يا جماعة .

#3

مافهمت طلبك كويس

هل تريد من هذه العمليه حمايه المجلد ؟

أم هناك مشكله في رفع الملفات ؟

إذا كانت هذه العمليه لحماية المجلد فلست بحاجه لها ... لآن إعطاء تصريح لمجلد 777 لايعني أن المجلد مخترق أمنيا خصوصا أنه لا يحتوي إلا على ملفات لا تنفذ مثل الصور

وأستغرب لماذا لم تعمل دالة chmod?

جرب هذا الكود :

exec("chmod 0777 /home/ursite/public_html/path.to/folder/")

طبعا بعد تغيير ماهو مهم في الكود

CMS Sfhati , Website Generator


نظام إدارة المحتوى صفحتي ... جربه الآن 


 


small-logo.png

#4

شكرا اخي على الرد

لا يوجد مشكلة بالتحميل و هو يعمل.

لكن المشكلة هي ان صلاحيات المجلد يجب ان تكون 777 , هذا غير امن , بمعنى .

اذا عملنا نسخ ثم لصق ل مسار الرسالة و ليكن مثلا : http//:documents.mysite.com/'Documents_path/1/filename

و لصقنا في برنامج اكسبلور. تفتح الرسالة وهذا ممنوع.

بدي المجلد تكون صلاحيتوا 755

و باستخدام الامر يحول ل 777

و بعد عملية التحميل يسير 775 يتسكر

مع تحيات

مواضيع مشابهة