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

السؤال

نشر

كيفكم يا أصدقاء.... فيه عندي فورم فيه 5 حقول "input type ="file......وفيه عندي folder اسمه img.... عنده ارسال الصور يجب أن تكون في folder الذي اسمه img.... 

كل input له عامود مثال 

الانبوت الأول اسم العامود تبعهُ img1

الانبوت الثاني اسم العامود تبعهُ img2

الانبوت الثالث اسم العامود تبعهُ img3

الانبوت الرابع اسم العامود تبعهُ img4

الانبوت الخامس اسم العامود تبعهُ img5

 

 

 

 

Recommended Posts

  • 0
نشر

نعم يمكنك ذلك يجب عليك إنشاء الفورم في ملف HTML و الذي يحتوي على ال input، ثم قم بإنشاء ملف PHP للتعامل مع رفع الملفات، سأحاول كتابة كود بسيط يقوم بنفس العمل لكن يجب عليك تعديله حسب حاجتك:

<?php
if (isset($_POST['submit'])) {
    // حدد مسار المجلد حيث سيتم تخزين الصور
    $target_dir = "img/";

    // قم بإنشاء مصفوفة تحتوي على أسماء الحقول
    $inputs = ['img1', 'img2', 'img3', 'img4', 'img5'];

    foreach ($inputs as $input) {
        // احصل على معلومات الملف
        $target_file = $target_dir . basename($_FILES[$input]['name']);
        $uploadOk = 1;
        $imageFileType = strtolower(pathinfo($target_file, PATHINFO_EXTENSION));

        // تحقق مما إذا كان الملف صورة بالفعل
        $check = getimagesize($_FILES[$input]["tmp_name"]);
        if ($check !== false) {
            echo "File is an image - " . $check["mime"] . ".<br>";
            $uploadOk = 1;
        } else {
            echo "File is not an image.<br>";
            $uploadOk = 0;
        }


        // السماح بأنواع معينة فقط من الملفات
        if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "gif" ) {
            echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.<br>";
            $uploadOk = 0;
        }

        // تحقق مما إذا كان $uploadOk يساوي 0 بسبب خطأ
        if ($uploadOk == 0) {
            echo "Sorry, your file was not uploaded.<br>";
        // إذا كان كل شيء على ما يرام، حاول رفع الملف
        } else {
            if (move_uploaded_file($_FILES[$input]["tmp_name"], $target_file)) {
                echo "The file ". htmlspecialchars(basename($_FILES[$input]["name"])). " has been uploaded.<br>";
            } else {
                echo "Sorry, there was an error uploading your file.<br>";
            }
        }
    }
}
?>

بهذه الطريقة ستتأكد من أن الملف هو صورة، كما نسمح بأنواع معينة فقط من الملفات (JPG، JPEG، PNG، وGIF)، نحاول رفع الملف إلى المجلد المحدد إذا لم يكن هناك أي أخطاء، وايضا كخطوة أخيرة تأكد من أن المجلد img لديه أذونات الكتابة المناسبة للسماح بعملية رفع الملفات.

  • 0
نشر

أولا يجب عليك إنشاء ملف ال form كالتالي :

<!DOCTYPE html>
<html lang="ar">
<head>
    <meta charset="UTF-8">
    <title>رفع الصور</title>
</head>
<body>
    <form action="upload.php" method="post" enctype="multipart/form-data">
        <label for="img1">صورة 1:</label>
        <input type="file" name="img1" id="img1"><br>

        <label for="img2">صورة 2:</label>
        <input type="file" name="img2" id="img2"><br>

        <label for="img3">صورة 3:</label>
        <input type="file" name="img3" id="img3"><br>

        <label for="img4">صورة 4:</label>
        <input type="file" name="img4" id="img4"><br>

        <label for="img5">صورة 5:</label>
        <input type="file" name="img5" id="img5"><br>

        <input type="submit" value="رفع الصور">
    </form>
</body>
</html>

بعد ذلك نقوم بإنشاء سكريبت الرفع ملف upload.php :

<?php
// إعدادات قاعدة البيانات
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "db_name";

// إنشاء اتصال بقاعدة البيانات
$conn = new mysqli($servername, $username, $password, $dbname);

// التحقق من نجاح الاتصال
if ($conn->connect_error) {
    die("فشل الاتصال بقاعدة البيانات: " . $conn->connect_error);
}

// تحديد المجلد الذي سيتم تخزين الملفات فيه
$target_dir = "img/";
// المتغير الذى يحوي مسارات الملفات لوضعها في قاعدة البيانات
$path_files = [];
// معالجة كل حقل من حقول الملفات
for ($i = 1; $i <= 5; $i++) {
    if (isset($_FILES["img$i"])) {
        $uploadOk = 1;
        // تحقق من حجم الملف
        if ($_FILES["img$i"]["size"] > 5000000) { // 5MB كحد أقصى
            echo "عذراً، حجم الملف " . $_FILES["img$i"]["name"] . " كبير جداً.<br>";
            $uploadOk = 0;
        }
    }
}

// تحقق من $uploadOk لتجنب رفع الملفات إذا كان هناك مشكلة
if ($uploadOk == 0) {
    echo "عذراً، لم يتم رفع الملفات .<br> ";
} else {
    for ($i = 1; $i <= 5; $i++) {
        $target_file = $target_dir . basename($_FILES["img$i"]["name"]);
        move_uploaded_file($_FILES["img$i"]["tmp_name"], $target_file);
        $path_files[$i] = [$target_file];
    }
    $stmt = $conn->prepare("INSERT INTO table_name (img1,img2,img3,img4,img5) VALUES (?, ?,?,?,?)");
    $stmt->bind_param("sssss", $path_files[1], $path_files[2],$path_files[3],$path_files[4],$path_files[5]);

    if ($stmt->execute()) {
        echo " تم رفع الملفات بنجاح <br> ";
    } else {
        echo "حدثت مشكلة اثناء الإضافة في قاعدة البيانات";
    }

}
$conn->close();

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

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...