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

Registered : 109,038

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



 

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

 



Topic : 133624



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



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




Code หน้าอัพโหลดรูป
Code (PHP)
01.<?php require_once('Connections/myconnect.php'); ?>
02.<?php
03.if (!function_exists("GetSQLValueString")) {
04.function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
05.{
06.  if (PHP_VERSION < 6) {
07.    $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
08.  }
09. 
10.  $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
11. 
12.  switch ($theType) {
13.    case "text":
14.      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
15.      break;   
16.    case "long":
17.    case "int":
18.      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
19.      break;
20.    case "double":
21.      $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
22.      break;
23.    case "date":
24.      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
25.      break;
26.    case "defined":
27.      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
28.      break;
29.  }
30.  return $theValue;
31.}
32.}
33. 
34.mysql_select_db($database_myconnect, $myconnect);
35.$query_Recordset1 = "SELECT p_id FROM tbl_product";
36.$Recordset1 = mysql_query($query_Recordset1, $myconnect) or die(mysql_error());
37.$row_Recordset1 = mysql_fetch_assoc($Recordset1);
38.$totalRows_Recordset1 = mysql_num_rows($Recordset1);
39. 
40.?>
41.<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
43.<head>
44.<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
45.<title>ฟอร์มเพิ่มสินค้า</title>
46.<!-- Latest compiled and minified CSS -->
47.<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
48.</head>
49. 
50.<body>
51.<div class="container">
52.  <div class="row">
53.    <div class="col-md-3"></div>
54.    <div class="col-md-6"> <br />
55.      <h4 align="center"> ฟอร์มเพิ่มสินค้า </h4>
56.      <hr />
57.      <form action="add_product_db.php" method="POST" enctype="multipart/form-data"  name="addprd" class="form-horizontal" id="addprd">
58.        <div class="form-group">
59.          <div class="col-sm-12">
60.            <p> ชื่อสินค้า</p>
61.            <input type="text"  name="p_name" class="form-control" required placeholder="ชื่อสินค้า" />
62.          </div>
63.        </div>
64.        <div class="form-group">
65.          <div class="col-sm-12">
66.            <p> รายละเอียดสินค้า </p>
67.            <textarea name="p_detail" class="form-control"  rows="3"  required placeholder="รายละเอียดสินค้า"></textarea>
68.          </div>
69.        </div>
70.        <div class="form-group">
71.          <div class="col-sm-3">
72.            <p> ราคา (บาท) </p>
73.            <input type="number"  name="p_price" class="form-control" required placeholder="ราคา" />
74.          </div>
75.          <input name="pid" type="hidden" id="pid" value="<?php echo $totalRows_Recordset1+1; ?>" />
76.          <div class="col-sm-8 info">
77.            <p> ภาพสินค้า </p>
78.            <input type="file" name="p_img" class="form-control" />
79.          </div>
80.        </div>
81.        <div class="form-group">
82.          <div class="col-sm-12">
83.            <button type="submit" class="btn btn-primary" name="btnadd"> + เพิ่มสินค้า </button>
84.          </div>
85.        </div>
86.      </form>
87.    </div>
88.  </div>
89.</div>
90.</body>
91.</html>
92.<?php
93.mysql_free_result($Recordset1);
94.?>


Code เก็บโฟว์เดอร์ที่เก็บ
Code (PHP)
01.<meta charset="UTF-8" />
02.<?php
03.require_once('connect.php');
04. 
05.    //Set ว/ด/ป เวลา ให้เป็นของประเทศไทย
06.    date_default_timezone_set('Asia/Bangkok');
07.    //สร้างตัวแปรวันที่เพื่อเอาไปตั้งชื่อไฟล์ที่อัพโหลด
08.    $date1 = date("Ymd_His");
09.    //สร้างตัวแปรสุ่มตัวเลขเพื่อเอาไปตั้งชื่อไฟล์ที่อัพโหลดไม่ให้ชื่อไฟล์ซ้ำกัน
10.    $numrand = (mt_rand());
11.     
12.    //รับชื่อไฟล์จากฟอร์ม
13.    $p_name = $_POST['p_name'];
14.    $p_detail = $_POST['p_detail'];
15.    $p_price = $_POST['p_price'];
16.    $p_img = (isset($_POST['p_img']) ? $_POST['p_img'] : '');
17.    $p_id = $_POST['pid'];
18.         
19.    $upload=$_FILES['p_img'];
20.    if($upload <> '') {
21. 
22.    //โฟลเดอร์ที่เก็บไฟล์
23.    $path="img/";
24.    //ตัวขื่อกับนามสกุลภาพออกจากกัน
25.    $type = strrchr($_FILES['p_img']['name'],".");
26.    //ตั้งชื่อไฟล์ใหม่เป็น สุ่มตัวเลข+วันที่
27.    $newname =$numrand.$date1.$type;
28. 
29.    $path_copy=$path.$newname;
30.    $path_link="img/".$newname;
31.    //คัดลอกไฟล์ไปยังโฟลเดอร์
32.    move_uploaded_file($_FILES['p_img']['tmp_name'],$path_copy); 
33.         
34.     
35.    }
36. 
37. 
38.             $sql = "INSERT INTO tbl_product
39.                    (p_id,
40.                    p_name,
41.                    p_detail,
42.                    p_price,
43.                    p_img)
44.                    VALUES
45.                    ('$p_id',
46.                     '$p_name',
47.                     '$p_detail',
48.                    '$p_price',
49.                    '$newname')";
50.         
51.        $result = mysql_db_query($database_condb, $sql) or die ("Error in query: $sql " . mysql_error());
52. 
53.    mysql_close();
54. 
55. 
56. 
57.    if($result){
58.    
59.            echo "<script type='text/javascript'>";
60.            echo  "alert('เพิ่มเรียบร้อย');";
61.            echo "window.location='showindex1.php';";
62.            echo "</script>";
63.      }
64.      else{
65.            echo "<script type='text/javascript'>";
66.            echo  "alert('error');";
67.                echo "window.location='showindex1.php';";
68.            echo "</script>";
69.      }
70.     
71.     
72. ?>


asdasd


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



Tag : PHP, MySQL, HTML







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

 

No. 1



โพสกระทู้ ( 4,759 )
บทความ ( 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



โพสกระทู้ ( 421 )
บทความ ( 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



โพสกระทู้ ( 4,759 )
บทความ ( 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



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



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


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


Code (PHP)
1.<form action="upload.php" method="post" enctype="multipart/form-data">
2.    <input type="hidden" name="name" value="someFormValue">
3.    <input type="file" name="image">
4.    <button type="submit">Upload</button>
5.</form>
6. 
7.Max file size: <?php echo ini_get('upload_max_filesize') . '<br>'; ?>

form.php





Code (PHP)
001.<?php
002. 
003./**
006. * @link https://www.php.net/manual/en/function.finfo-file.php Finfo (file info) reference.
007. * @link https://www.php.net/manual/en/function.filesize.php File size function reference.
009. */
010. 
011.if ($_POST) {
012.    // if method post.
013.    $data['name'] = filter_input(INPUT_POST, 'name', FILTER_SANITIZE_STRING);// ตย.สมมุติกรณีมีฟอร์มฟิลด์อื่นๆมาด้วย.
014. 
015.    // กำหนดตัวแปรสำหรับใช้ตรวจ error ก่อนทำอื่นๆ
016.    $errorFound = false;
017. 
018.    if (isset($_FILES['image'])) {
019.        // ถ้ามีการ upload.
020.        if (
021.            isset($_FILES['image']['error']) &&
022.            $_FILES['image']['error'] !== UPLOAD_ERR_OK &&
023.            $_FILES['image']['error'] !== UPLOAD_ERR_NO_FILE// ถ้าไม่บังคับ upload ก็เอาไว้ ถ้าบังคับก็เอาออก
024.        ) {
025.            // ถ้ามี upload error.
026.            switch ($_FILES['image']['error']) {
027.                case UPLOAD_ERR_INI_SIZE:
028.                    $errorMessage = "The uploaded file exceeds the upload_max_filesize directive in php.ini";
029.                    break;
030.                case UPLOAD_ERR_FORM_SIZE:
031.                    $errorMessage = "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form";
032.                    break;
033.                case UPLOAD_ERR_PARTIAL:
034.                    $errorMessage = "The uploaded file was only partially uploaded";
035.                    break;
036.                case UPLOAD_ERR_NO_FILE:
037.                    $errorMessage = "No file was uploaded";
038.                    break;
039.                case UPLOAD_ERR_NO_TMP_DIR:
040.                    $errorMessage = "Missing a temporary folder";
041.                    break;
042.                case UPLOAD_ERR_CANT_WRITE:
043.                    $errorMessage = "Failed to write file to disk";
044.                    break;
045.                case UPLOAD_ERR_EXTENSION:
046.                    $errorMessage = "File upload stopped by extension";
047.                    break;
048.                default:
049.                    $errorMessage = "Unknown upload error";
050.                    break;
051.            }
052.            $errorFound = true;
053.        } elseif ($_FILES['image']['error'] === UPLOAD_ERR_OK) {
054.            // ถ้าไม่มี upload error.
055.            // ดึงข้อมูลไฟล์จากของจริง เพื่อใช้ตรวจสอบ ไม่ใช่เอาจาก $_FILES ซึ่งอาจถูกปลอมได้.
056.            $Finfo = new finfo();
057.            $fileMime = $Finfo->file($_FILES['image']['tmp_name'], FILEINFO_MIME_TYPE);// xxxx/xxxx
058.            $fileSize = filesize($_FILES['image']['tmp_name']);// in bytes
059.            $allowedMimes = ['image/gif', 'image/jpeg', 'image/png'];// gif, jpg, jpeg, png.
060.            unset($Finfo);
061.             
062.            if ($fileSize > 1024000) {
063.                $errorFound = true;
064.                $errorMessage = 'ขนาดไฟล์ใหญ่เกินกว่า 1 MB.';
065.            } elseif (!in_array(strtolower($fileMime), $allowedMimes)) {
066.                $errorFound = true;
067.                $errorMessage = 'กรุณา upload รูปภาพเท่านั้น.';
068.            } else {
069.                // ผ่านเงื่อนไขการตรวจหมดแล้ว, move upload ได้เลย.
070.                $expUploadFile = explode('.', $_FILES['image']['name']);
071.                $fileExt = '.' . $expUploadFile[count($expUploadFile) - 1];
072.                unset($expUploadFile);
073.                // กำหนดชื่อไฟล์ใหม่ จะใส่ path ไปตรงไหนก็กำหนดตรงนี้
074.                $newUploadFileName = md5(time()) . $fileExt;
075.                unset($fileExt);
076. 
077.                $uploadResult = move_uploaded_file($_FILES['image']['tmp_name'], $newUploadFileName);
078.                if ($uploadResult !== true) {
079.                    $errorFound = true;
080.                    $errorMessage = 'ไม่สามารถอัพโหลดได้.';// จะมี warning ให้เปิดแสดง error.
081.                }
082.                unset($uploadResult);
083.            }
084. 
085.            unset($allowedMimes, $Finfo, $fileMime, $fileSize);
086.        }// endif; ตรวจ upload error.
087.    }// endif; ถ้ามีการ upload.
088. 
089.    if ($errorFound === false) {
090.        // ถ้าผ่านการตรวจแล้ว ไม่มี error
091.        // ทำอย่างอื่น เช่น insert, update DB.
092.        if (isset($newUploadFileName)) {
093.            // ถ้ามีการ upload ด้วย กำหนดค่าเพิ่มเติม.
094.            $data['image'] = $newUploadFileName;
095.            unset($newUploadFileName);
096.            // ทดลองเฉยๆ upload ได้แล้วก็ลบทิ้ง.
097.            unlink($data['image']);
098.        }
099. 
100.        // INSERT/UPDATE DB ก็ตรงนี้
101.        print_r($data);// for debug only.
102.    } else {
103.        // ถ้าผ่านการตรวจแต่มี error
104.        if (isset($errorMessage)) {
105.            // ถ้ามีข้อความ error.
106.            // จะแสดงธรรมดา (echo) ก็ได้, trigger error ก็ได้, หรือจะใช้ throw exception ก็ได้.
107.            trigger_error($errorMessage, E_USER_ERROR);
108.        }
109.        exit();// หยุดทำงาน หรือจะไม่หยุด แล้วแต่.
110.    }
111.}

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



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



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

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

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


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

image/gif หรือ ป่าว

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

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


 

No. 9



โพสกระทู้ ( 4,759 )
บทความ ( 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)
001.<?php
002. 
003./**
006. * @link https://www.php.net/manual/en/function.finfo-file.php Finfo (file info) reference.
007. * @link https://www.php.net/manual/en/function.filesize.php File size function reference.
009. */
010. 
011.if ($_POST) {
012.    // if method post.
013.    $data['name'] = filter_input(INPUT_POST, 'name', FILTER_SANITIZE_STRING);// ตย.สมมุติกรณีมีฟอร์มฟิลด์อื่นๆมาด้วย.
014. 
015.    // กำหนดตัวแปรสำหรับใช้ตรวจ error ก่อนทำอื่นๆ
016.    $errorFound = false;
017. 
018.    if (isset($_FILES['image'])) {
019.        // ถ้ามีการ upload.
020.        if (
021.            isset($_FILES['image']['error']) &&
022.            $_FILES['image']['error'] !== UPLOAD_ERR_OK &&
023.            $_FILES['image']['error'] !== UPLOAD_ERR_NO_FILE// ถ้าไม่บังคับ upload ก็เอาไว้ ถ้าบังคับก็เอาออก
024.        ) {
025.            // ถ้ามี upload error.
026.            switch ($_FILES['image']['error']) {
027.                case UPLOAD_ERR_INI_SIZE:
028.                    $errorMessage = "The uploaded file exceeds the upload_max_filesize directive in php.ini";
029.                    break;
030.                case UPLOAD_ERR_FORM_SIZE:
031.                    $errorMessage = "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form";
032.                    break;
033.                case UPLOAD_ERR_PARTIAL:
034.                    $errorMessage = "The uploaded file was only partially uploaded";
035.                    break;
036.                case UPLOAD_ERR_NO_FILE:
037.                    $errorMessage = "No file was uploaded";
038.                    break;
039.                case UPLOAD_ERR_NO_TMP_DIR:
040.                    $errorMessage = "Missing a temporary folder";
041.                    break;
042.                case UPLOAD_ERR_CANT_WRITE:
043.                    $errorMessage = "Failed to write file to disk";
044.                    break;
045.                case UPLOAD_ERR_EXTENSION:
046.                    $errorMessage = "File upload stopped by extension";
047.                    break;
048.                default:
049.                    $errorMessage = "Unknown upload error";
050.                    break;
051.            }
052.            $errorFound = true;
053.        } elseif ($_FILES['image']['error'] === UPLOAD_ERR_OK) {
054.            // ถ้าไม่มี upload error.
055.            // ดึงข้อมูลไฟล์จากของจริง เพื่อใช้ตรวจสอบ ไม่ใช่เอาจาก $_FILES ซึ่งอาจถูกปลอมได้.
056.            $Finfo = new finfo();
057.            $fileMime = $Finfo->file($_FILES['image']['tmp_name'], FILEINFO_MIME_TYPE);// xxxx/xxxx
058.            $fileSize = filesize($_FILES['image']['tmp_name']);// in bytes
059.            $allowedMimes = array('image/jpeg', '...');;// gif, jpg, jpeg, png.
060.            unset($Finfo);
061.             
062.            if ($fileSize > 1024000) {
063.                $errorFound = true;
064.                $errorMessage = 'ขนาดไฟล์ใหญ่เกินกว่า 1 MB.';
065.            } elseif (!in_array(strtolower($fileMime), $allowedMimes)) {
066.                $errorFound = true;
067.                $errorMessage = 'กรุณา upload รูปภาพเท่านั้น.';
068.            } else {
069.                // ผ่านเงื่อนไขการตรวจหมดแล้ว, move upload ได้เลย.
070.                $expUploadFile = explode('.', $_FILES['image']['name']);
071.                $fileExt = '.' . $expUploadFile[count($expUploadFile) - 1];
072.                unset($expUploadFile);
073.                // กำหนดชื่อไฟล์ใหม่ จะใส่ path ไปตรงไหนก็กำหนดตรงนี้
074.                $newUploadFileName = md5(time()) . $fileExt;
075.                unset($fileExt);
076. 
077.                $uploadResult = move_uploaded_file($_FILES['image']['tmp_name'], $newUploadFileName);
078.                if ($uploadResult !== true) {
079.                    $errorFound = true;
080.                    $errorMessage = 'ไม่สามารถอัพโหลดได้.';// จะมี warning ให้เปิดแสดง error.
081.                }
082.                unset($uploadResult);
083.            }
084. 
085.            unset($allowedMimes, $Finfo, $fileMime, $fileSize);
086.        }// endif; ตรวจ upload error.
087.    }// endif; ถ้ามีการ upload.
088. 
089.    if ($errorFound === false) {
090.        // ถ้าผ่านการตรวจแล้ว ไม่มี error
091.        // ทำอย่างอื่น เช่น insert, update DB.
092.        if (isset($newUploadFileName)) {
093.            // ถ้ามีการ upload ด้วย กำหนดค่าเพิ่มเติม.
094.            $data['image'] = $newUploadFileName;
095.            unset($newUploadFileName);
096.            // ทดลองเฉยๆ upload ได้แล้วก็ลบทิ้ง.
097.            unlink($data['image']);
098.        }
099. 
100.        // INSERT/UPDATE DB ก็ตรงนี้
101.        print_r($data);// for debug only.
102.    } else {
103.        // ถ้าผ่านการตรวจแต่มี error
104.        if (isset($errorMessage)) {
105.            // ถ้ามีข้อความ error.
106.            // จะแสดงธรรมดา (echo) ก็ได้, trigger error ก็ได้, หรือจะใช้ throw exception ก็ได้.
107.            trigger_error($errorMessage, E_USER_ERROR);
108.        }
109.        exit();// หยุดทำงาน หรือจะไม่หยุด แล้วแต่.
110.    }
111.}


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


 

No. 11



โพสกระทู้ ( 4,759 )
บทความ ( 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)
1.//$Finfo = new finfo();
2.//$fileMime = $Finfo->file($_FILES['image']['tmp_name'], FILEINFO_MIME_TYPE);// xxxx/xxxx
3.$fileMime = $_FILES['image']['type'];// วิธีนี้ช่องโหว่ความปลอดภัยบานเบอะ. ใช้ของเก่าก็ช่วยไม่ได้นะ.
4.$fileSize = filesize($_FILES['image']['tmp_name']);// in bytes
5.$allowedMimes = array('image/jpeg', '...');;// gif, jpg, jpeg, png.
6.//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



โพสกระทู้ ( 4,759 )
บทความ ( 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



โพสกระทู้ ( 4,759 )
บทความ ( 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: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

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