การอัปโหลดรูปลงฐานข้อมูลโดยตรง

การอัปโหลดรูปไปยังฐานข้อมูลโดยตรง และสามารถตรวจสอบรูปก่อนการอัปโหลดได้ด้วย

<?
  $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);
?>
ผู้เขียน goragod โพสต์เมื่อ 02 เม.ย. 2551 เปิดดู 11,654 ป้ายกำกับ PHPSQLForm
^