การอัปโหลดรูปลงฐานข้อมูลโดยตรง
การอัปโหลดรูปไปยังฐานข้อมูลโดยตรง และสามารถตรวจสอบรูปก่อนการอัปโหลดได้ด้วย
<?
$picture = $_FILES[picture]; //รูปที่รับมาจากการอัปโหลด
$config[imagewidth] = 600; //ความกว้างของรูปอัพโหลด
if ($picture[tmp_name] != "") { //มีรูปอัปโหลดมาด้วย
$imgtype = $picture[type]; //ชนิดของรูป
$imgname = $picture[name]; //ชื่อของรูป
//ตรวจสอบชนิดของรูปที่ีอัปโหลดมา
if ($imgtype == "image/gif") $ext = ".gif";
elseif ($imgtype == "image/png") $ext = ".png";
elseif ($imgtype == "image/jpg" || $imgtype == "image/jpeg" || $imgtype == "image/pjpeg") $ext = ".jpg";
if (isset($ext)) { //รูปถูกต้อง เป็นรูปภาพ ตรวจสอบความกว้างของรูป
$image_info = getimagesize($picture[tmp_name]);
if ($image_info[0] > $config[imagewidth]) {
echo "ความกว้างของรูปมากกว่า $config[imagewidth] pixels<br />กรุณาตรวจสอบและแก้ไข<br /><a href='javascript:history.back(1)'>กลับไปแก้ไข</a>";
exit();
}
} else { //ไม่ใช่รูปภาพ
echo "ไม่ใช่ไฟล์รูปภาพ .gif .jpg .png<br />กรุณาตรวจสอบก่อนส่ง<br /><a href='javascript:history.back(1)'>กลับไปแก้ไข</a>");
exit();
}
$handle = fopen($picture[tmp_name], "rb"); //เปิดไฟล์เพื่ออ่าน (binary)
$imgdata = fread($handle, filesize($picture[tmp_name])); //อ่านไฟล์ไว้ที่ $imgdata
$imgdata = addslashes($imgdata);
fclose($handle); //เปิดแล้วปิดไฟล์ด้วย
}
//บันทึกลงฐานข้อมูล
$sql = "INSERT INTO `$db_table` ( `wb_picture` , `wb_pictype` , `wb_picname` ) VALUES ( '$imgdata', '$ext' , '$imgname' );";
$query = mysql_query($sql);
?>