Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 107,976

HOME > PHP > PHP Forum > Upload รูปลงฐานข้อมูลแล้วเชฟในโฟว์เดอร์แต่ไม่ขึ้นรูปครับ



 

Upload รูปลงฐานข้อมูลแล้วเชฟในโฟว์เดอร์แต่ไม่ขึ้นรูปครับ

 



Topic : 133624



โพสกระทู้ ( 17 )
บทความ ( 0 )



สถานะออฟไลน์




Code หน้าอัพโหลดรูป
Code (PHP)
<?php require_once('Connections/myconnect.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  if (PHP_VERSION < 6) {
    $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  }

  $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}
}

mysql_select_db($database_myconnect, $myconnect);
$query_Recordset1 = "SELECT p_id FROM tbl_product";
$Recordset1 = mysql_query($query_Recordset1, $myconnect) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>ฟอร์มเพิ่มสินค้า</title>
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
</head>

<body>
<div class="container">
  <div class="row">
    <div class="col-md-3"></div>
    <div class="col-md-6"> <br />
      <h4 align="center"> ฟอร์มเพิ่มสินค้า </h4>
      <hr />
      <form action="add_product_db.php" method="POST" enctype="multipart/form-data"  name="addprd" class="form-horizontal" id="addprd">
        <div class="form-group">
          <div class="col-sm-12">
            <p> ชื่อสินค้า</p>
            <input type="text"  name="p_name" class="form-control" required placeholder="ชื่อสินค้า" />
          </div>
        </div>
        <div class="form-group">
          <div class="col-sm-12">
            <p> รายละเอียดสินค้า </p>
            <textarea name="p_detail" class="form-control"  rows="3"  required placeholder="รายละเอียดสินค้า"></textarea>
          </div>
        </div>
        <div class="form-group">
          <div class="col-sm-3">
            <p> ราคา (บาท) </p>
            <input type="number"  name="p_price" class="form-control" required placeholder="ราคา" />
          </div>
          <input name="pid" type="hidden" id="pid" value="<?php echo $totalRows_Recordset1+1; ?>" />
          <div class="col-sm-8 info">
            <p> ภาพสินค้า </p>
            <input type="file" name="p_img" class="form-control" />
          </div>
        </div>
        <div class="form-group">
          <div class="col-sm-12">
            <button type="submit" class="btn btn-primary" name="btnadd"> + เพิ่มสินค้า </button>
          </div>
        </div>
      </form>
    </div>
  </div>
</div>
</body>
</html>
<?php
mysql_free_result($Recordset1);
?>



Code เก็บโฟว์เดอร์ที่เก็บ
Code (PHP)
<meta charset="UTF-8" />
<?php 
require_once('connect.php');

    //Set ว/ด/ป เวลา ให้เป็นของประเทศไทย
    date_default_timezone_set('Asia/Bangkok');
	//สร้างตัวแปรวันที่เพื่อเอาไปตั้งชื่อไฟล์ที่อัพโหลด
	$date1 = date("Ymd_His");
	//สร้างตัวแปรสุ่มตัวเลขเพื่อเอาไปตั้งชื่อไฟล์ที่อัพโหลดไม่ให้ชื่อไฟล์ซ้ำกัน
	$numrand = (mt_rand());
	
	//รับชื่อไฟล์จากฟอร์ม 
	$p_name = $_POST['p_name'];
	$p_detail = $_POST['p_detail'];
	$p_price = $_POST['p_price'];
	$p_img = (isset($_POST['p_img']) ? $_POST['p_img'] : '');
	$p_id = $_POST['pid'];
		
	$upload=$_FILES['p_img'];
	if($upload <> '') { 

	//โฟลเดอร์ที่เก็บไฟล์
	$path="img/";
	//ตัวขื่อกับนามสกุลภาพออกจากกัน
	$type = strrchr($_FILES['p_img']['name'],".");
	//ตั้งชื่อไฟล์ใหม่เป็น สุ่มตัวเลข+วันที่
	$newname =$numrand.$date1.$type;

	$path_copy=$path.$newname;
	$path_link="img/".$newname;
	//คัดลอกไฟล์ไปยังโฟลเดอร์
	move_uploaded_file($_FILES['p_img']['tmp_name'],$path_copy);  
		
	
	}


			 $sql = "INSERT INTO tbl_product 
					(p_id,
					p_name, 
					p_detail, 
					p_price, 
					p_img) 
					VALUES
					('$p_id',
					 '$p_name',
					 '$p_detail',
					'$p_price',
					'$newname')";
		
		$result = mysql_db_query($database_condb, $sql) or die ("Error in query: $sql " . mysql_error());

	mysql_close();



	if($result){
   
			echo "<script type='text/javascript'>";
			echo  "alert('เพิ่มเรียบร้อย');";
			echo "window.location='showindex1.php';";
			echo "</script>";
	  }
	  else{
		    echo "<script type='text/javascript'>";
			echo  "alert('error');";
				echo "window.location='showindex1.php';";
			echo "</script>";
	  }
	
	
 ?>


asdasd


ข้อมูลในฐานข้อมูล
ๆไำไๆำ



Tag : PHP, MySQL, HTML







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2019-05-21 19:18:02 By : Nirawit View : 252 Reply : 15
 

 

No. 1



โพสกระทู้ ( 3,567 )
บทความ ( 8 )



สถานะออฟไลน์


https://www.thaicreate.com/php/forum/095986.html
https://www.thaicreate.com/php/forum/133577.html#00484277
Quote:
เอาไฟล์ที่อัพโหลดแล้วเปิดดูด้วย text editor เช่น notepad++. ถ้ามันไม่มีอะไรแสดงว่ามันไม่ได้อัพโหลดจริง.

เปิดแสดงนามสกุลไฟล์ เราไม่ใช่ user ธรรมดาทั่วไปที่จะมามัวซ่อนนามสกุลไฟล์ให้มันสวยๆหรืออะไรก็แล้วแต่ มันต้องเห็นนามสกุลไฟล์ว่าคืออะไรแน่ เช่น บางคนอาจเจอ name.jpg.jpg แบบนี้ก็ได้ หรือภาพที่อัพแล้วอาจไม่ได้กำหนดนามสกุลไฟล์เลยก็ได้.







แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-05-21 19:33:17 By : mr.v
 


 

No. 2



โพสกระทู้ ( 17 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 1 เขียนโดย : mr.v เมื่อวันที่ 2019-05-21 19:33:17
รายละเอียดของการตอบ ::
ยังไงครับพอดีไม่เคยใช้ Notepad++ ละไม่เข้าใจตรงเอาไฟล์ที่อัพโหลดแล้วเปิดดูด้วย text editor เช่น notepad++. ถ้ามันไม่มีอะไรแสดงว่ามันไม่ได้อัพโหลดจริง ครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-05-21 19:39:43 By : Nirawit
 

 

No. 3



โพสกระทู้ ( 406 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ถ้าไม่เข้าใจจริงๆ ต้องค่อย ๆ อ่านและทำความเข้าใจครับ
ต้องจับประเด็นให้ได้เพราะพวกพี่จะไม่บอกทั้งหมดเพราะอยากให้คนที่ได้เรียนรู้หัดคิดและวิเคราะห์เองครับ

1.พี่เขาแนะนำว่าให้เปิดไฟล์ภาพด้วย text Editor อาจจะเป็น notepad++,Edit Plus หรืออื่นๆ เวลาเปิดภาพก็ให้คลิกขวาที่ภาพแล้วก็รันด้วยโปรแกรม text Editor ครับ
ลองทำที่ภาพที่เราอัพโหลดขึ้นครับ
ถ้าภาพนั้นขึ้นแบบนี้

ภาพ

แสดงว่ามีข้อมูลของภาพครับ ถ้าว่างเปล่าแสดงว่าภาพนั้นยังไงก็เปิดไม่ได้เพราะไม่มีข้อมูลของภาพนั้นเอง

2.พี่เขาบอกว่าให้เปิดแสดงนามสกุลไฟล์ครับ อย่างเช่นของคุณภาพสีฟ้าๆนั้นจะมีแค่ตัวเลข 123456 หากเราเป็นฝั่งทางด้านผู้พัฒนาระบบแล้วสิ่งที่ต้องมองเห็นต้องมากกว่า ผู้ใช้งานทั่วไปครับ
เราต้องมองเห็นเป็น 123456.jpg หรือนามสกุลอื่นก็ว่าไป
เพราะบางที่ภาพที่คุณอัพโหลดอาจชื่อว่า 123456.jpg.jpg ประมาณนี้ครับ

หากใช้ win10 ลองตั้งค่าแบบนี้ดูครับ

https://www.it24hrs.com/2016/windows-10-windows-photo-viewer/
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-05-22 09:06:30 By : nobetaking
 


 

No. 4



โพสกระทู้ ( 17 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 3 เขียนโดย : nobetaking เมื่อวันที่ 2019-05-22 09:06:30
รายละเอียดของการตอบ ::
1.อันนี้คือไฟล์ที่ใช้อัพโหลดลงฐานข้อมูลครับ
ฟหกหฟก

2.เปิดแสดงนามสกุลไฟล์นี่ใช้แบบนี้ใหมครับ
ฟหดฟหกเ

ข้อมูลในฐานข้อมูล
ฟหกฟหกดฟห

asdasd



ประวัติการแก้ไข
2019-05-22 21:57:02
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-05-22 21:43:28 By : Nirawit
 


 

No. 5



โพสกระทู้ ( 3,567 )
บทความ ( 8 )



สถานะออฟไลน์


show file extension
แสดงนามสกุลไฟล์ต้องแบบนี้ครับ คือให้ดูแล้วเห็นทั้งหมดว่า name.ext คืออะไร เห็นในทันทีจะได้ไม่ต้องเสียเวลามากด property.

วิธีทำ
https://www.howtogeek.com/205086/beginner-how-to-make-windows-show-file-extensions/

ในส่วนของโค้ด ให้ comment คลุมส่วนการทำงานเกี่ยวกับ db ไปก่อน เอาให้มันอัพโหลดได้จริงเป็นรูปจริงๆก่อน.


ประวัติการแก้ไข
2019-05-23 10:52:43
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-05-23 03:33:31 By : mr.v
 


 

No. 6



โพสกระทู้ ( 3,567 )
บทความ ( 8 )



สถานะออฟไลน์


ตัวอย่างโค้ด upload ที่ผมทำนะ ลองดูละกัน.


Code (PHP)
<form action="upload.php" method="post" enctype="multipart/form-data">
    <input type="hidden" name="name" value="someFormValue">
    <input type="file" name="image">
    <button type="submit">Upload</button>
</form>

Max file size: <?php echo ini_get('upload_max_filesize') . '<br>'; ?> 

form.php





Code (PHP)
<?php

/**
 * @link https://www.php.net/manual/en/features.file-upload.post-method.php $_FILES array reference.
 * @link https://www.php.net/manual/en/features.file-upload.errors.php $_FILES error reference.
 * @link https://www.php.net/manual/en/function.finfo-file.php Finfo (file info) reference.
 * @link https://www.php.net/manual/en/function.filesize.php File size function reference.
 * @link https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types Mime types reference.
 */

if ($_POST) {
    // if method post.
    $data['name'] = filter_input(INPUT_POST, 'name', FILTER_SANITIZE_STRING);// ตย.สมมุติกรณีมีฟอร์มฟิลด์อื่นๆมาด้วย.

    // กำหนดตัวแปรสำหรับใช้ตรวจ error ก่อนทำอื่นๆ
    $errorFound = false;

    if (isset($_FILES['image'])) {
        // ถ้ามีการ upload.
        if (
            isset($_FILES['image']['error']) && 
            $_FILES['image']['error'] !== UPLOAD_ERR_OK && 
            $_FILES['image']['error'] !== UPLOAD_ERR_NO_FILE// ถ้าไม่บังคับ upload ก็เอาไว้ ถ้าบังคับก็เอาออก
        ) {
            // ถ้ามี upload error.
            switch ($_FILES['image']['error']) {
                case UPLOAD_ERR_INI_SIZE:
                    $errorMessage = "The uploaded file exceeds the upload_max_filesize directive in php.ini";
                    break;
                case UPLOAD_ERR_FORM_SIZE:
                    $errorMessage = "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form";
                    break;
                case UPLOAD_ERR_PARTIAL:
                    $errorMessage = "The uploaded file was only partially uploaded";
                    break;
                case UPLOAD_ERR_NO_FILE:
                    $errorMessage = "No file was uploaded";
                    break; 
                case UPLOAD_ERR_NO_TMP_DIR:
                    $errorMessage = "Missing a temporary folder";
                    break;
                case UPLOAD_ERR_CANT_WRITE:
                    $errorMessage = "Failed to write file to disk";
                    break;
                case UPLOAD_ERR_EXTENSION:
                    $errorMessage = "File upload stopped by extension";
                    break;
                default:
                    $errorMessage = "Unknown upload error";
                    break;
            }
            $errorFound = true;
        } elseif ($_FILES['image']['error'] === UPLOAD_ERR_OK) {
            // ถ้าไม่มี upload error.
            // ดึงข้อมูลไฟล์จากของจริง เพื่อใช้ตรวจสอบ ไม่ใช่เอาจาก $_FILES ซึ่งอาจถูกปลอมได้.
            $Finfo = new finfo();
            $fileMime = $Finfo->file($_FILES['image']['tmp_name'], FILEINFO_MIME_TYPE);// xxxx/xxxx
            $fileSize = filesize($_FILES['image']['tmp_name']);// in bytes
            $allowedMimes = ['image/gif', 'image/jpeg', 'image/png'];// gif, jpg, jpeg, png.
            unset($Finfo);
            
            if ($fileSize > 1024000) {
                $errorFound = true;
                $errorMessage = 'ขนาดไฟล์ใหญ่เกินกว่า 1 MB.';
            } elseif (!in_array(strtolower($fileMime), $allowedMimes)) {
                $errorFound = true;
                $errorMessage = 'กรุณา upload รูปภาพเท่านั้น.';
            } else {
                // ผ่านเงื่อนไขการตรวจหมดแล้ว, move upload ได้เลย.
                $expUploadFile = explode('.', $_FILES['image']['name']);
                $fileExt = '.' . $expUploadFile[count($expUploadFile) - 1];
                unset($expUploadFile);
                // กำหนดชื่อไฟล์ใหม่ จะใส่ path ไปตรงไหนก็กำหนดตรงนี้
                $newUploadFileName = md5(time()) . $fileExt;
                unset($fileExt);

                $uploadResult = move_uploaded_file($_FILES['image']['tmp_name'], $newUploadFileName);
                if ($uploadResult !== true) {
                    $errorFound = true;
                    $errorMessage = 'ไม่สามารถอัพโหลดได้.';// จะมี warning ให้เปิดแสดง error.
                }
                unset($uploadResult);
            }

            unset($allowedMimes, $Finfo, $fileMime, $fileSize);
        }// endif; ตรวจ upload error.
    }// endif; ถ้ามีการ upload.

    if ($errorFound === false) {
        // ถ้าผ่านการตรวจแล้ว ไม่มี error
        // ทำอย่างอื่น เช่น insert, update DB.
        if (isset($newUploadFileName)) {
            // ถ้ามีการ upload ด้วย กำหนดค่าเพิ่มเติม.
            $data['image'] = $newUploadFileName;
            unset($newUploadFileName);
            // ทดลองเฉยๆ upload ได้แล้วก็ลบทิ้ง.
            unlink($data['image']);
        }

        // INSERT/UPDATE DB ก็ตรงนี้
        print_r($data);// for debug only.
    } else {
        // ถ้าผ่านการตรวจแต่มี error
        if (isset($errorMessage)) {
            // ถ้ามีข้อความ error.
            // จะแสดงธรรมดา (echo) ก็ได้, trigger error ก็ได้, หรือจะใช้ throw exception ก็ได้.
            trigger_error($errorMessage, E_USER_ERROR);
        }
        exit();// หยุดทำงาน หรือจะไม่หยุด แล้วแต่.
    }
}

upload.php



ถ้า move upload สำเร็จแล้วภาพมีก็คือผ่านแล้ว ค่อยไปทำ insert/update db ต่อ


ประวัติการแก้ไข
2019-05-23 04:27:26
2019-05-23 04:27:53
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-05-23 04:25:32 By : mr.v
 


 

No. 7



โพสกระทู้ ( 17 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 6 เขียนโดย : mr.v เมื่อวันที่ 2019-05-23 04:25:32
รายละเอียดของการตอบ ::
Code บรรทัดที่ 59 Error ครับ
aasdsa

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-05-23 10:06:28 By : Nirawit
 


 

No. 8



โพสกระทู้ ( 406 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ลองเปลี่ยนเป็นแบบนี้ดูหรือยังครับ

Code (PHP)
$allowedMimes = [".gif",".jpg",".jpeg",".png"];


อีกอย่างโค้ดที่พี่เขาให้มาเหมือนเป็นการ part ในโฟลเดอร์ของคุณมี

image/gif หรือ ป่าว

ถ้าอ่านที่ตัวแปล มันจะได้ความหมายว่า การอนุญาต

ลองดูครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-05-23 10:27:29 By : nobetaking
 


 

No. 9



โพสกระทู้ ( 3,567 )
บทความ ( 8 )



สถานะออฟไลน์


allowedMimes ใช้ image/jpeg อะไรแบบนี้ถูกแล้วครับ เพราะมันคือ mime type ไม่ใช่ extension.
ที่มัน error คุณจขกท.ก็ควรเอา error มาด้วยว่าคืออะไร คนช่วยจะได้รู้และตอบได้ตรงและไว ไม่ใช่ให้มานั่งเดาเอา

ก็เดาว่า error syntax ผิดเพราะคุณใช้ php 5.3 ซึ่งต้องเปลี่ยนจาก short array เป็นแบบเต็ม คือจาก ['image/jpeg', '...']; เป็น array('image/jpeg', '...');

https://www.php.net/manual/en/language.types.array.php


ประวัติการแก้ไข
2019-05-23 10:50:33
2019-05-23 10:51:04
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-05-23 10:47:59 By : mr.v
 


 

No. 10



โพสกระทู้ ( 17 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 9 เขียนโดย : mr.v เมื่อวันที่ 2019-05-23 10:47:59
รายละเอียดของการตอบ ::
CODE ไม่ error ละครับแต่ติดตรงพอรันแล้ว

ฟหกฟห


Code (PHP)
<?php

/**
 * @link https://www.php.net/manual/en/features.file-upload.post-method.php $_FILES array reference.
 * @link https://www.php.net/manual/en/features.file-upload.errors.php $_FILES error reference.
 * @link https://www.php.net/manual/en/function.finfo-file.php Finfo (file info) reference.
 * @link https://www.php.net/manual/en/function.filesize.php File size function reference.
 * @link https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types Mime types reference.
 */

if ($_POST) {
    // if method post.
    $data['name'] = filter_input(INPUT_POST, 'name', FILTER_SANITIZE_STRING);// ตย.สมมุติกรณีมีฟอร์มฟิลด์อื่นๆมาด้วย.

    // กำหนดตัวแปรสำหรับใช้ตรวจ error ก่อนทำอื่นๆ
    $errorFound = false;

    if (isset($_FILES['image'])) {
        // ถ้ามีการ upload.
        if (
            isset($_FILES['image']['error']) && 
            $_FILES['image']['error'] !== UPLOAD_ERR_OK && 
            $_FILES['image']['error'] !== UPLOAD_ERR_NO_FILE// ถ้าไม่บังคับ upload ก็เอาไว้ ถ้าบังคับก็เอาออก
        ) {
            // ถ้ามี upload error.
            switch ($_FILES['image']['error']) {
                case UPLOAD_ERR_INI_SIZE:
                    $errorMessage = "The uploaded file exceeds the upload_max_filesize directive in php.ini";
                    break;
                case UPLOAD_ERR_FORM_SIZE:
                    $errorMessage = "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form";
                    break;
                case UPLOAD_ERR_PARTIAL:
                    $errorMessage = "The uploaded file was only partially uploaded";
                    break;
                case UPLOAD_ERR_NO_FILE:
                    $errorMessage = "No file was uploaded";
                    break; 
                case UPLOAD_ERR_NO_TMP_DIR:
                    $errorMessage = "Missing a temporary folder";
                    break;
                case UPLOAD_ERR_CANT_WRITE:
                    $errorMessage = "Failed to write file to disk";
                    break;
                case UPLOAD_ERR_EXTENSION:
                    $errorMessage = "File upload stopped by extension";
                    break;
                default:
                    $errorMessage = "Unknown upload error";
                    break;
            }
            $errorFound = true;
        } elseif ($_FILES['image']['error'] === UPLOAD_ERR_OK) {
            // ถ้าไม่มี upload error.
            // ดึงข้อมูลไฟล์จากของจริง เพื่อใช้ตรวจสอบ ไม่ใช่เอาจาก $_FILES ซึ่งอาจถูกปลอมได้.
            $Finfo = new finfo();
            $fileMime = $Finfo->file($_FILES['image']['tmp_name'], FILEINFO_MIME_TYPE);// xxxx/xxxx
            $fileSize = filesize($_FILES['image']['tmp_name']);// in bytes
            $allowedMimes = array('image/jpeg', '...');;// gif, jpg, jpeg, png.
            unset($Finfo);
            
            if ($fileSize > 1024000) {
                $errorFound = true;
                $errorMessage = 'ขนาดไฟล์ใหญ่เกินกว่า 1 MB.';
            } elseif (!in_array(strtolower($fileMime), $allowedMimes)) {
                $errorFound = true;
                $errorMessage = 'กรุณา upload รูปภาพเท่านั้น.';
            } else {
                // ผ่านเงื่อนไขการตรวจหมดแล้ว, move upload ได้เลย.
                $expUploadFile = explode('.', $_FILES['image']['name']);
                $fileExt = '.' . $expUploadFile[count($expUploadFile) - 1];
                unset($expUploadFile);
                // กำหนดชื่อไฟล์ใหม่ จะใส่ path ไปตรงไหนก็กำหนดตรงนี้
                $newUploadFileName = md5(time()) . $fileExt;
                unset($fileExt);

                $uploadResult = move_uploaded_file($_FILES['image']['tmp_name'], $newUploadFileName);
                if ($uploadResult !== true) {
                    $errorFound = true;
                    $errorMessage = 'ไม่สามารถอัพโหลดได้.';// จะมี warning ให้เปิดแสดง error.
                }
                unset($uploadResult);
            }

            unset($allowedMimes, $Finfo, $fileMime, $fileSize);
        }// endif; ตรวจ upload error.
    }// endif; ถ้ามีการ upload.

    if ($errorFound === false) {
        // ถ้าผ่านการตรวจแล้ว ไม่มี error
        // ทำอย่างอื่น เช่น insert, update DB.
        if (isset($newUploadFileName)) {
            // ถ้ามีการ upload ด้วย กำหนดค่าเพิ่มเติม.
            $data['image'] = $newUploadFileName;
            unset($newUploadFileName);
            // ทดลองเฉยๆ upload ได้แล้วก็ลบทิ้ง.
            unlink($data['image']);
        }

        // INSERT/UPDATE DB ก็ตรงนี้
        print_r($data);// for debug only.
    } else {
        // ถ้าผ่านการตรวจแต่มี error
        if (isset($errorMessage)) {
            // ถ้ามีข้อความ error.
            // จะแสดงธรรมดา (echo) ก็ได้, trigger error ก็ได้, หรือจะใช้ throw exception ก็ได้.
            trigger_error($errorMessage, E_USER_ERROR);
        }
        exit();// หยุดทำงาน หรือจะไม่หยุด แล้วแต่.
    }
}


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-05-23 11:02:32 By : Nirawit
 


 

No. 11



โพสกระทู้ ( 3,567 )
บทความ ( 8 )



สถานะออฟไลน์


โห... finfo() not found..........



https://www.php.net/manual/en/fileinfo.installation.php
Quote:
This extension is enabled by default as of PHP 5.3.0. Before this time, fileinfo was a PECL extension but is no longer maintained there.


https://www.php.net/manual/en/function.finfo-file.php
Quote:
(PHP >= 5.3.0, PECL fileinfo >= 0.1.0)


ถามจริง คุณใช้ PHP 5.2 หรือไงเนี่ย?

ถ้ามันไม่มีก็ comment code ออกไปครับ.
ถ้าให้ดี หาเวอร์ชั่นใหม่ๆมาใช้ซะนะครับ.
Code (PHP)
            //$Finfo = new finfo();
            //$fileMime = $Finfo->file($_FILES['image']['tmp_name'], FILEINFO_MIME_TYPE);// xxxx/xxxx
            $fileMime = $_FILES['image']['type'];// วิธีนี้ช่องโหว่ความปลอดภัยบานเบอะ. ใช้ของเก่าก็ช่วยไม่ได้นะ.
            $fileSize = filesize($_FILES['image']['tmp_name']);// in bytes
            $allowedMimes = array('image/jpeg', '...');;// gif, jpg, jpeg, png.
            //unset($Finfo);



ประวัติการแก้ไข
2019-05-23 11:07:48
2019-05-23 11:10:01
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-05-23 11:06:07 By : mr.v
 


 

No. 12



โพสกระทู้ ( 17 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 11 เขียนโดย : mr.v เมื่อวันที่ 2019-05-23 11:06:07
รายละเอียดของการตอบ ::
พอลบโค้ดบรรทัดที่56 ออกกลายเป็นว่าขึ้นแบบนี้
Fatal error: Call to a member function file() on a non-object in C:\AppServ\www\computer\admin\mysql\upload.php on line 57

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-05-23 11:09:52 By : Nirawit
 


 

No. 13



โพสกระทู้ ( 3,567 )
บทความ ( 8 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 12 เขียนโดย : Nirawit เมื่อวันที่ 2019-05-23 11:09:52
รายละเอียดของการตอบ ::
ดูคห.บนที่ผมอัปเดทแล้ว

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-05-23 11:10:45 By : mr.v
 


 

No. 14



โพสกระทู้ ( 17 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 13 เขียนโดย : mr.v เมื่อวันที่ 2019-05-23 11:10:45
รายละเอียดของการตอบ ::
แบบนี้คือรูปเข้าแล้วรึป่าวครับ
asdsad



ประวัติการแก้ไข
2019-05-23 11:20:03
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-05-23 11:19:21 By : Nirawit
 


 

No. 15



โพสกระทู้ ( 3,567 )
บทความ ( 8 )



สถานะออฟไลน์


ลองเปิดไฟล์ดูครับ ถ้ามีภาพก็คือได้แล้ว
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-05-23 11:36:08 By : mr.v
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : Upload รูปลงฐานข้อมูลแล้วเชฟในโฟว์เดอร์แต่ไม่ขึ้นรูปครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: Voake, Comcube, รับทำเว็บไซต์ รับเขียนโปรแกรม

Load balance : Server 02
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2019 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 , 08-9968-0655 อัตราราคา คลิกที่นี่