اذهب إلى المحتوى
  • 0

طريقة تحميل الصور إلى الخادم بلغة php

Hafsa Aly

السؤال

Recommended Posts

  • 0

و عليكم السلام

  • يمكنك تحميل صورة الى الخادم في لغة php  من خلال التابع move_uploaded_file حيث نقوم بتمرير متغيرين لهذا التابع كالتالي:

 

move_uploaded_file(

        $_FILES["image"]["tmp_name"],// هنا نمرر المسار المؤقت لمكان وجود/رفع الصورة

        "path/to/the/images/folder" //هنا نمرر مسار حفظ الصورة

    );

و بالطبع يمكنك التطوير على طريقة استخدام التابع السابق، كوضعه ضمن try - catch للحصول على رسائل تحذيرية في حال حصول أخطاء. 

  • بالنسبة للـ password hashing فلديك العديد من الخيارات على حسب طريقة ال hashing التي تريدين استخدامها، ولكن غالبا في php لعمل hash لكلمة المرور نقوم باستخدام التابع: MD5 كالتالي:
     
 
$password= md5("pass123"); // كلمة السر المخزنة مثلا في الداتابيس  
 
if (isset($_POST['password']) && !empty($_POST['password']))
{
$new_password=$_POST['password']; // كلمة السر المدخلة من المستخدم ضمن الفورم 
     
    if(md5($new_password)==$password)
    {
        echo "<br> Correct password ";
    }
    else{
        echo "<br> Incorrect password ";
    }
}

حيث تخزن عادة كلمات السر ضمن قاعدة البيانات و هي مشفرة.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

السلام عليكم أخي 

بتاريخ 11 دقائق مضت قال Hafsa Aly:

اولا اريد معرفه طريقه تحميل الصور الى الخادم طبعا بلغه php

هناك طريقتان :

الاولى ان تقوم بتحميل الصورة على قاعدة البيانات وهذه غير محبذه لأنها تثقل من قاعدة البيانات وتجعل الضغط عليها كبيراً.

الثانية أن تقوم بتحميل الصورة على السيرفر و من ثم تقوم بتخزين المسار المؤدي الى الصورة في قاعدة البيانات.

مثال:

if(isset($_POST["submit"]) && !empty($_FILES["file"]["name"])){
    // Allow certain file formats
    $allowTypes = array('jpg','png','jpeg','gif','pdf');
    if(in_array($fileType, $allowTypes)){
        // Upload file to server
        if(move_uploaded_file($_FILES["file"]["tmp_name"], $targetFilePath)){
            // Insert image file name into database
            $insert = $db->query("INSERT into images (file_name, uploaded_on) VALUES ('".$fileName."', NOW())");
            if($insert){
                $statusMsg = "The file ".$fileName. " has been uploaded successfully.";
            }else{
                $statusMsg = "File upload failed, please try again.";
            } 
        }else{
            $statusMsg = "Sorry, there was an error uploading your file.";
        }
    }else{
        $statusMsg = 'Sorry, only JPG, JPEG, PNG, GIF, & PDF files are allowed to upload.';
    }
}else{
    $statusMsg = 'Please select a file to upload.';
}

بالنسبة للpassword hashing فإنك تقوم بتشفير كلمة المرور حتى لايتمكن احد من الاطلاع عليها

بمعنى أنك لاتخزن كلمة المرور فعلياً

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 13 دقائق مضت قال عبد الله محمد5:

السلام عليكم أخي 

هناك طريقتان :

الاولى ان تقوم بتحميل الصورة على قاعدة البيانات وهذه غير محبذه لأنها تثقل من قاعدة البيانات وتجعل الضغط عليها كبيراً.

الثانية أن تقوم بتحميل الصورة على السيرفر و من ثم تقوم بتخزين المسار المؤدي الى الصورة في قاعدة البيانات.

مثال:


if(isset($_POST["submit"]) && !empty($_FILES["file"]["name"])){
    // Allow certain file formats
    $allowTypes = array('jpg','png','jpeg','gif','pdf');
    if(in_array($fileType, $allowTypes)){
        // Upload file to server
        if(move_uploaded_file($_FILES["file"]["tmp_name"], $targetFilePath)){
            // Insert image file name into database
            $insert = $db->query("INSERT into images (file_name, uploaded_on) VALUES ('".$fileName."', NOW())");
            if($insert){
                $statusMsg = "The file ".$fileName. " has been uploaded successfully.";
            }else{
                $statusMsg = "File upload failed, please try again.";
            } 
        }else{
            $statusMsg = "Sorry, there was an error uploading your file.";
        }
    }else{
        $statusMsg = 'Sorry, only JPG, JPEG, PNG, GIF, & PDF files are allowed to upload.';
    }
}else{
    $statusMsg = 'Please select a file to upload.';
}

بالنسبة للpassword hashing فإنك تقوم بتشفير كلمة المرور حتى لايتمكن احد من الاطلاع عليها

بمعنى أنك لاتخزن كلمة المرور فعلياً

لم افهم شيئ من الكود ممكن التوضيح

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 3 ساعات قال Hafsa Aly:

لم افهم شيئ من الكود ممكن التوضيح

if(isset($_POST["submit"]) && !empty($_FILES["file"]["name"])){

هنا يتم التأكد من أن الملف موجود وأن الform تم ارسال بياناته 

 

    // Allow certain file formats
    $allowTypes = array('jpg','png','jpeg','gif','pdf');
    if(in_array($fileType, $allowTypes)){
        // Upload file to server

هنا يتم التأكد من نوع الملف انه ملف صورة بالامتدادات الموضحة فإذا كان امتداد الملف واحداً من هذه الامتدادات فإن الملف يعتبر مقبولاً .

فقط هنالك تعديل بسيط الرجاء إضافة السطر التالي:

$fileName = $_FILES['image']['name'];
$fileType = pathinfo($fileName, PATHINFO_EXTENSION);
        // Upload file to server
        if(move_uploaded_file($_FILES["file"]["tmp_name"], $targetFilePath)){
            // Insert image file name into database
            $insert = $db->query("INSERT into images (file_name, uploaded_on) VALUES ('".$fileName."', NOW())");

 الدالة move_uploaded_file تقوم بنقل الملف الى المكان المخصص وهو الtargetFilePath$ ويجب عليك تعريف مسار خاص بالمكان الذي تريد تحميل الملف عليه.

إذا تم نقل الملف بنجاح تقوم الدالة بارجاع true فبالتالي يتم تنفيذ السطر القادم وهو ادخال اسم الملف ووقت رفعه على السيرفر

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 12 ساعات قال عبد الله محمد5:

if(isset($_POST["submit"]) && !empty($_FILES["file"]["name"])){

هنا يتم التأكد من أن الملف موجود وأن الform تم ارسال بياناته 

 


    // Allow certain file formats
    $allowTypes = array('jpg','png','jpeg','gif','pdf');
    if(in_array($fileType, $allowTypes)){
        // Upload file to server

هنا يتم التأكد من نوع الملف انه ملف صورة بالامتدادات الموضحة فإذا كان امتداد الملف واحداً من هذه الامتدادات فإن الملف يعتبر مقبولاً .

فقط هنالك تعديل بسيط الرجاء إضافة السطر التالي:


$fileName = $_FILES['image']['name'];
$fileType = pathinfo($fileName, PATHINFO_EXTENSION);

        // Upload file to server
        if(move_uploaded_file($_FILES["file"]["tmp_name"], $targetFilePath)){
            // Insert image file name into database
            $insert = $db->query("INSERT into images (file_name, uploaded_on) VALUES ('".$fileName."', NOW())");

 الدالة move_uploaded_file تقوم بنقل الملف الى المكان المخصص وهو الtargetFilePath$ ويجب عليك تعريف مسار خاص بالمكان الذي تريد تحميل الملف عليه.

إذا تم نقل الملف بنجاح تقوم الدالة بارجاع true فبالتالي يتم تنفيذ السطر القادم وهو ادخال اسم الملف ووقت رفعه على السيرفر

هل كتابة الكود بهذه الطريقه لايتضمن حفظ الصورة ع السيرفر وحفظها مباشرة في قاعدة البيانات

$folder = "../../site/images/";

     $image = $_FILES['image']['name'];

     $target = $folder.basename($image);

     move_uploaded_file($_FILES["image"]["tmp_name"], "$folder".$_FILES["image"]["name"]);

     $images = $_FILES['images']['name'];

     $target = "$folder".basename($images);

     move_uploaded_file($_FILES["images"]["tmp_name"], "$folder".$_FILES["images"]["name"]);

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 12 ساعات قال Hafsa Aly:

هل كتابة الكود بهذه الطريقه لايتضمن حفظ الصورة ع السيرفر وحفظها مباشرة في قاعدة البيانات


$folder = "../../site/images/";

     $image = $_FILES['image']['name'];

     $target = $folder.basename($image);

     move_uploaded_file($_FILES["image"]["tmp_name"], "$folder".$_FILES["image"]["name"]);

     $images = $_FILES['images']['name'];

     $target = "$folder".basename($images);

     move_uploaded_file($_FILES["images"]["tmp_name"], "$folder".$_FILES["images"]["name"]);

 

لا هذا الكود يقوم فقط بنقل الملف إلى السيرفر عن طريق الدالة move_uploaded_file والتي تم تكرارها اكثر من مرة إذا لم يكن هنالك سبب لتكرار الكود أظن انه يجب عليك أن تكتفي بالأربعة أسطر الأولى فقط.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...