يجب عليك إنشاء صفحة HTML تحتوي على نموذج (Form) يحتوي على حقول لرفع صورة البطاقة الشخصية وحقول أخري للبينات التي تريدها .
ملف ال form :
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
</head>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
<label for="name">الإسم:</label><br>
<input type="text" id="name" name="name"><br><br>
<label for="email">البريد:</label><br>
<input type="email" id="email" name="email"><br><br>
<label for="file">قم برفع الصورة الشخصية:</label><br>
<input type="file" id="file" name="file"><br><br>
<input type="submit" value="Submit">
</form>
</body>
</html>
هنا قمنا بإنشاء form لملئ البيانات والبيانات هي الإسم والبريد و ملف الصورة الشخصية . وأيضا تأكد من وضع خاصية enctype="multipart/form-data" في عنصر ال form للسماح برفع الصور .
ملف PHP لمعالجة النموذج (upload.php):
<?php
// تحقق من أن الفورم تم إرساله بشكل صحيح
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// اتصال بقاعدة البيانات - يمكنك تعديل المعلومات التالية حسب إعدادات قاعدة البيانات الخاصة بك
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "test";
// إنشاء اتصال
$conn = new mysqli($servername, $username, $password, $dbname);
// تحقق من الاتصال
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// استخراج البيانات من الفورم
$name = $_POST['name'];
$email = $_POST['email'];
// رفع الصورة الشخصية
$file_name = $_FILES['file']['name'];
$file_tmp = $_FILES['file']['tmp_name'];
move_uploaded_file($file_tmp,"images/".$file_name); // حفظ الصورة في مجلد images بالخادم
// تخزين البيانات في قاعدة البيانات
$sql = "INSERT INTO user (name, email, personal_id_image)
VALUES ('$name', '$email', '$file_name')";
if ($conn->query($sql) === TRUE) {
echo "تم إرسال البيانات بنجاح!";
} else {
echo "خطأ: " . $sql . "<br>" . $conn->error;
}
// إغلاق الاتصال بقاعدة البيانات
$conn->close();
}
?>
تأكد من أن مجلد الصور images موجود ولديك الصلاحية للرفع عليه من قبل السيرفر.
وهذه هي أبسط طريقة لرفع الصور بواسطة php.
ويمكنك قراءة المزيد من الإجابات التالية :