Upload ไฟล์หรือภาพลง MySQL โดยใช้ PHP PDO

เริ่มจากการสร้างฐานข้อมูลเสียก่อนโดยผมใช้ฐานข้อมูลชื่อว่า image ตาราง 3 คอลั่ม บันทึก id / name / path ง่ายๆ แค่ 2 ไฟล์เท่านั้นเองครับ

<?php
$server = "localhost";
$username = "root";
$password = "root";
$dbname = "your_db_name";
try {
	$conn = new PDO(
		"mysql:host=$server; dbname=$dbname",
		"$username", "$password"
	);
	$conn->setAttribute(
		PDO::ATTR_ERRMODE,
		PDO::ERRMODE_EXCEPTION
	);
}
catch(PDOException $e) {
	die('เชื่อมต่อฐานข้อมูลไม่ได้');
}
?>

จากนั้นเราก็จะสร้างฟอร์ม และตัว Submit form และฟังชั่นการอัปโหลดขึ้นฐานข้อมูลเราครับ

<?php
include "db.php";

if(isset($_POST['submit'])) {
	$countfiles = count($_FILES['files']['name']);
  //อัปโหลดที่ไหน
	$query = "INSERT INTO images (name,path) VALUES(?,?)";
	$statement = $conn->prepare($query);
	for($i = 0; $i < $countfiles; $i++) {

		// ชื่อไฟล์
		$filename = $_FILES['files']['name'][$i];
		// Path
		$target_file = './uploads/'.$filename;
		// นามสกุล
		$file_extension = pathinfo(
			$target_file, PATHINFO_EXTENSION);
		$file_extension = strtolower($file_extension);
		// ไฟล์ที่รองรับ
		$valid_extension = array("png","jpeg","jpg");
		if(in_array($file_extension, $valid_extension)) {
			// Upload file
			if(move_uploaded_file(
				$_FILES['files']['tmp_name'][$i],
				$target_file)
			) {
				$statement->execute(
					array($filename,$target_file));
			}
		}
	}
	
	echo "อัปโหลดสำเร็จ";
}
?>

<!DOCTYPE html>
<html lang="th">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content=
		"width=device-width, initial-scale=1.0">
	<title>อัปโหลดไฟล์เก่ง</title>
</head>
<body>
	<h1>อัปโหลดไฟล์</h1>
	<form method='post' action=''
		enctype='multipart/form-data'>
		<input type='file' name='files[]' multiple />
		<input type='submit' value='Submit' name='upload' />
	</form>
</body>
</html>

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *

Up Next:

การทำ Search ค้นหาข้อมูลบน Codeigniter

การทำ Search ค้นหาข้อมูลบน Codeigniter