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,027

HOME > PHP > PHP Forum > รบกวนสอบถามครับคือผมใช้ PHP ทำการ Upload ไฟล์รูปภาพ ลงในฐานข้อมูลลงใน SQL Server แต่อัพโหลดไม่ผ่านคับ



 

รบกวนสอบถามครับคือผมใช้ PHP ทำการ Upload ไฟล์รูปภาพ ลงในฐานข้อมูลลงใน SQL Server แต่อัพโหลดไม่ผ่านคับ

 



Topic : 133561



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



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




จากบทความนี้ครับ
https://www.thaicreate.com/free-web-script/php-upload-file-blob-image-sql-mssql-server-2000-2005-2008.html

อันนี้ที่แจ้งเตือนคับ
Database Connected. ERROR INSERT INTO files (Name,FilesType,FilesName) SELECT 'Boss','image/jpeg',
BulkColumn FROM OPENROWSET( Bulk 'C:\Windows\Temp\php9345.tmp', SINGLE_BLOB) AS BLOB

โค้ต
Code (PHP)
<?php 
require_once("../pdo.con.php");

if($_FILES["filUpload"]["name"] != "")
	{

		$strSQL = "INSERT INTO files ";
		$strSQL .="(Name,FilesType,FilesName) ";
		$strSQL .="SELECT '".$_POST["txtName"]."','".$_FILES["filUpload"]["type"]."',  ";
		$strSQL .="BulkColumn FROM OPENROWSET( ";
		$strSQL .=" Bulk '".$_FILES["filUpload"]["tmp_name"]."', SINGLE_BLOB) AS BLOB ";


		$result = $conn->query($strSQL)or die ("ERROR".$strSQL);		

		echo "Copy/Upload Complete<br>";
		
	}




Tag : PHP, Ms SQL Server 2008, Ms SQL Server 2014







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2019-05-04 14:51:49 By : Lun2560 View : 2210 Reply : 14
 

 

No. 1



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



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


https://www.w3schools.com/sql/sql_insert.asp
https://www.thaicreate.com/php/php-mssql-sql-server-add-insert-record.html
https://www.thaicreate.com/community/php-insert-image-mssql.html
ดูว่าเขาเขียนยังไง มันใช่ insert into xxx (...) select ไหม?








ประวัติการแก้ไข
2019-05-04 22:33:37
2019-05-04 22:34:53
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-05-04 22:16:30 By : mr.v
 


 

No. 2



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



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


ตอบความคิดเห็นที่ : 1 เขียนโดย : mr.v เมื่อวันที่ 2019-05-04 22:16:30
รายละเอียดของการตอบ ::
ผมลองทั้งสองตัวอย่างแล้วคับ error เดียวกัน
ผมก็เขียนตามตัวอย่างนะคับเพียงแต่ผมใช้ pdo ในการเชื่อมต่อคับ การเขียนเพิ่มข้อมูลธรรมดาก็เพิ่มได้ปกติ แต่พออัพโลดรูปไม่ได้ ผมใช้ mssql 2014 คับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-05-04 22:52:56 By : Lun2560
 

 

No. 3



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



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


เอาโค้ดที่ว่าลองแล้วมาดูครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-05-04 22:57:16 By : mr.v
 


 

No. 4



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



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


form
Code (PHP)
<form name="form1" method="post" action="picup2.php" enctype="multipart/form-data" >
  <table width="100" border="1" align="center">
  <tr>
  <td>Upload Picture</td>
  </tr>
  <tr>
  <td><input type="file" name="upfile" ></td>
  </tr>
  <tr>
  <td><input type="submit" name="Submit" value="Submit"></td>
  </tr>
  </table>
  </form>


insert
Code (PHP)
<?php 
//require_once("../pdofw.php");

ini_set('display_errors', 1);
error_reporting(~0);

    $serverName = "PJ60\SQLEXPRESS";
    $userName = "sa";
    $userPassword = "";
    $dbName = "mydatabase";
  
    $conn = new PDO("sqlsrv:server=$serverName ; Database = $dbName", $userName, $userPassword);

	if($conn)
	{
		echo "Database Connected.";
	}
	else
	{
		echo "Database Connected Failed.";
	}
	
	if($_FILES["upfile"]["name"] != "Please Insert Images")
	{
	$FileName = $_FILES['upfile']['tmp_name']; 
	$Name=$_FILES["upfile"]["name"]; 
	$Size=$_FILES["upfile"]["size"]; 
	$Type=$_FILES["upfile"]["type"]; 
	$DataImage = file_get_contents($FileName ); 
	$ArrData = unpack("H*hex", $DataImage); 
	$HexData = "0x".$ArrData['hex']; 



	$sql = "INSERT INTO Images (Img_Name,Img_Size,Img_Data,Img_Type) VALUES ( '$Name','$Size',$HexData,'$Type' )";
	$resule = $conn->query($sql) or die ("ERROR ".$sql);
	
	echo "Upload Complete<br>";
	echo "<a href='picup3.php'>View_img </a> ";
	}
?>


Error คับ
Database Connected.ERROR INSERT INTO Images (Img_Name,Img_Size,Img_Data,Img_Type) VALUES ( '1.jpg','126203',0xffd8ffe000104a46494600010101006000600000ffdb00430001010101010101010101010101010...)
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-05-05 13:06:36 By : Lun2560
 


 

No. 5



โพสกระทู้ ( 9,559 )
บทความ ( 2 )



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


$result = $conn->query($strSQL)or die ("ERROR".$strSQL);

เปลี่ยนเป็น

$result = $conn->query($strSQL)or die ("ERROR".$strSQL.'<br>'. print_r($conn->errorInfo(),true));


https://www.php.net/manual/en/pdo.errorinfo.php

ถ้าเปลี่ยน จากคำสั่ง query ไปใช้ prepare ก็จะดีมาก

ปล.แจ้งเออเร่อร์แค่นั้น มันเห็นแต่ statement ถ้าไม่ชำนาญก็จะไม่รู้ว่าเอ่อเร่อร์อะไร
ก็จะหาลำบาก


ประวัติการแก้ไข
2019-05-05 15:58:32
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-05-05 15:56:59 By : Chaidhanan
 


 

No. 6



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



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


ตอบความคิดเห็นที่ : 5 เขียนโดย : Chaidhanan เมื่อวันที่ 2019-05-05 15:56:59
รายละเอียดของการตอบ ::
ขอบคุณมากคับ อัพโหลดได้แล้วคับ ตอนนี้ติดเรื่องึดงข้อมูลมาแสดงคับ ขอรบกวนอีกครั้งคับ

showdata.php
Code (PHP)
<?php
require_once("../pdo.con.php");

$sql ="select * from Image_tb ";

$result = $conn->query($sql)or die ("ERROR".$sql.'<br>'. print_r($conn->errorInfo(),true));
?>
<table width="600" border="1" cellpadding="0" cellspacing="0" align="center" >
  <tr> 
    <th width="50"> <div align="center">ID</div></th>
    <th width="50"> <div align="center">Picture</div></th>
    <th width="150"> <div align="center">Name</div></th>
    <th width="150">Type</th>
  </tr>
  <?php
  while($row = $result->fetch(PDO::FETCH_ASSOC)) {
  ?>
  <tr> 
    <td><div align="center" width="50"><?php echo $row['id'];?></div></td>
    <td width="150"><img src="ViewImage.php?id=<?php echo $row["id"];?>"></td>
	<td><div align="center" width="50"><?php echo $row['username'];?></div></td>
    <td><div align="center" width="150"><?php echo $row['type'];?></div></td>
   </tr>
  <?php } ?>
</table>



ViewImage.php
Code (PHP)
   $serverName = "PJ60\SQLEXPRESS";
    $userName = "sa";
    $userPassword = "";
    $dbName = "mydatabase";
  
    $conn = new PDO("sqlsrv:server=$serverName ; Database = $dbName", $userName, $userPassword);

	if($conn)
	{
		echo "Database Connected.";
	}
	else
	{
		echo "Database Connected Failed.";
	}

$sql = "SELECT * FROM Image_tb WHERE id = '".$_GET['id']."' ";
$result = $conn->query($sql)or die ("ERROR".$sql.'<br>'. print_r($conn->errorInfo(),true));
$row = $result->fetch(PDO::FETCH_ASSOC);
header('Content-Type: '.$row['type']);
echo $row['image'];



ส่วนของโค้ต insert data คับ
Code (PHP)
<?php
$db = 'mssql';

$config = array(
/*
    'mysql' => array(
        'dsn'       => 'mysql:host=localhost;dbname=mydatabase',
        'user'      => 'root',
        'password'  => '03112530'
    ),
*/
    'mssql' => array(
        'dsn'       => 'sqlsrv:Server=PJ60\SQLEXPRESS;Database=mydatabase',
        'user'      => 'sa',
        'password'  => 'ua'
    )
);

try {
    $pdocheck = new PDO($config[$db]['dsn'], $config[$db]['user'], $config[$db]['password']);
    $pdocheck->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
	
	$result = $pdocheck->prepare(" INSERT INTO Image_tb (username, type, image) VALUES (:username, :type, :image); ");
    $result->bindParam(':username', $_POST['username']);
    $result->bindParam(':type', $_FILES['image']['type']);
    $result->bindParam(':image', file_get_contents($_FILES['image']['tmp_name']), PDO::PARAM_LOB, 0, PDO::SQLSRV_ENCODING_BINARY);
    $result->execute();

    $output = $pdocheck->prepare(" SELECT  type, image  FROM Image_tb WHERE username = :username ");
    $output->bindParam(':username',  $_POST['username']);
    $output->execute();
    $output->bindColumn(2, $image, PDO::PARAM_LOB, 0, PDO::SQLSRV_ENCODING_BINARY);
    $row = $output->fetch(PDO::FETCH_ASSOC);
    if ($row) {
        // send image back to browser
		header('content-type: '.$row['type']);
        echo $row['image'];
        
    }
}
catch (PDOException $e) {
    echo $e->getMessage();
}


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


 

No. 7



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



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


ผมพยายามดึงรูปภาพไม่ขึ้นคับมาแต่ข้อความ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-05-06 11:00:50 By : Lun2560
 


 

No. 8



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



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


วิธีการแสดงภาพที่ผมทดสอบแล้วได้ผลเอามา 3 วิธี อ้างอิงจาก https://stackoverflow.com/questions/4286677/show-image-using-file-get-contents
ให้เลือกเอาวิธีหนึ่ง โดยต้องทบทวนดูตั้งแต่การ insert เลยด้วย.

01
Code (PHP)
$image = 'cats.jpg';


$content = file_get_contents($image);

$imageInfo = getimagesize($image);

header('Content-Type: ' . $imageInfo['mime']);

echo $content;




02
Code (PHP)
$image = 'cats.jpg';


$content = base64_encode(file_get_contents($image));

$imageInfo = getimagesize($image);

header('Content-Type: ' . $imageInfo['mime']);

echo base64_decode($content);




03
Code (PHP)
$image = 'cats.jpg';

$imageInfo = getimagesize($image);

header('Content-Type: ' . $imageInfo['mime']);

readfile($image);




ให้ลองดูจากโค้ดของเขาที่ใช้จะพบว่าดึงเอา mime type จากตัวไฟล์โดยตรงเลย การไปเชื่อ mime type จากกระบวนการอัพโหลดอาจถูกหลอกได้ นี่ยังไม่รวมการเอาข้อมูลจาก $_GET มาใช้เลยโดยไม่กรองอีก มันจะมีช่องโหว่มากทีเดียว

ในส่วนของ function readfile() ตัวนี้จะมีคุณสมบัติไม่ดึงข้อมูลในไฟล์เข้าสู่ memory เหมือน file_get_contents() ซึ่งใช้อ่านไฟล์ใหญ่ๆได้สบายๆ แต่ก็ต้องดูว่าจะใช้ในกระบวนการ insert ได้ไหม?


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


 

No. 9



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



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


ได้แล้วคับผม

Code (PHP)
<?php
$db = 'mssql';

$config = array(
/*
    'mysql' => array(
        'dsn'       => 'mysql:host=localhost;dbname=mydatabase',
        'user'      => 'root',
        'password'  => '03112530'
    ),
*/
    'mssql' => array(
        'dsn'       => 'sqlsrv:Server=PJ60\SQLEXPRESS;Database=mydatabase',
        'user'      => 'sa',
        'password'  => 'ua'
    )
);
try {
    
    $pdocheck = new PDO($config[$db]['dsn'], $config[$db]['user'], $config[$db]['password']);
    $pdocheck->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    
    $output = $pdocheck->prepare(" SELECT type, image FROM Image_tb WHERE id = :id ");
    $output->bindParam(':id',  $_GET['id']);
    $output->execute();
    $output->bindColumn(2, $image, PDO::PARAM_LOB, 0, PDO::SQLSRV_ENCODING_BINARY);
    $row = $output->fetch(PDO::FETCH_ASSOC);
    if ($row) {
        
        header('content-type: '.$row['type']);
        echo $row['image'];
    }
}
catch (PDOException $e) {
    echo $e->getMessage();
}


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-05-06 11:27:35 By : Lun2560
 


 

No. 10



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



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


ตอบความคิดเห็นที่ : 8 เขียนโดย : mr.v เมื่อวันที่ 2019-05-06 11:14:46
รายละเอียดของการตอบ ::
โค้ตข้างต้นผมลองเทสดึงจากเครื่องตัวเองคับยังไม่ได้ลองจาก server จริง คนเดิมที่เขียนไว้เค้า VB สิ่งที่ผมต้องทำคือดึงข้อมูลเฉยๆคับห้ามแก้ไข
ขอบคุณมากคับพี่ๆ ทั้งสองท่าน เดี๋ยวผมจะศึกษาเพิ่มเติมคับ

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


 

No. 11



โพสกระทู้ ( 9,559 )
บทความ ( 2 )



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


ตอบความคิดเห็นที่ : 1 เขียนโดย : mr.v เมื่อวันที่ 2019-05-04 22:16:30
รายละเอียดของการตอบ ::
อันนี้ก็เป็น standard statement รูปแบบหนึ่งเพื่อใช้ในการ insert จาก table ที่มีอยู่แล้วครับ
สามารถ join หรืออะไรก็ได้ในรูปแบบการ select โดยทั่วไป มีข้อจำกัดคือ จำนวน field result ที่ได้ต้องเท่ากันกับ ตารางที่จะ insert
และ field type ของข้อมูล ต้องเข้ากันได้

Code (SQL)
insert into tablename ( field1, field2, field3) 
select value1,value2,value3 from tablename where .... ;

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-05-06 13:41:45 By : Chaidhanan
 


 

No. 12



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



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


ตอบความคิดเห็นที่ : 11 เขียนโดย : Chaidhanan เมื่อวันที่ 2019-05-06 13:41:45
รายละเอียดของการตอบ ::
ผมไม่เคยเห็น syntax แบบนี้เลยไปลองหามา ก็ส่วนมากมีแต่ตัวอย่างที่ยกมาครับ

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


 
มีโค้ด สำหรับอัพโหลดไฟล์ PDF และรูปภาพ ขึ้น DataBase คะ ลองใช้โค้ดนี้แล้วอัพขึ้นไม่ได้

&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;en&quot;&gt;
&lt;head&gt;
&lt;head&gt;
&lt;meta charset=&quot;UTF-8&quot;&gt;
&lt;meta http-equiv=&quot;X-UA-Compatible&quot; content=&quot;IE=edge&quot;&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
&lt;link href=&quot;https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css&quot; rel=&quot;stylesheet&quot; integrity=&quot;sha384-F3w7mX95PdgyTmZZMECAngseQB83DfGTowi0iMjiWaeVhAn4FJkqJByhZMI3AhiU&quot; crossorigin=&quot;anonymous&quot;&gt;
&lt;title&gt;สวนพฤกษศาตร์โรงเรียนวิทยาลัยเทคนิคเขมราฐ&lt;/title&gt;
&lt;!-- sweet alert --&gt;
&lt;script src=&quot;https://code.jquery.com/jquery-2.1.3.min.js&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;https://cdnjs.cloudflare.com/ajax/libs/sweetalert/1.1.3/sweetalert-dev.js&quot;&gt;&lt;/script&gt;
&lt;link rel=&quot;stylesheet&quot; href=&quot;https://cdnjs.cloudflare.com/ajax/libs/sweetalert/1.1.3/sweetalert.css&quot;&gt;
&lt;link href=&quot;css/bootstrap-4.4.1.css&quot; rel=&quot;stylesheet&quot;&gt;
&lt;link rel=&quot;stylesheet&quot; href=&quot;https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css&quot;&gt;
&lt;/head&gt;
&lt;body background=&quot;gn1.png&quot; &gt;
&lt;nav class=&quot;navbar navbar-expand-lg navbar-dark bg-purple&quot;&gt;
&lt;div class=&quot;container-fluid&quot;&gt;
&lt;a class=&quot;navbar-brand&quot; href=&quot;index.html&quot;&gt;&lt;img src=&quot;img/km.png&quot; width=&quot;60&quot; height=&quot;61&quot; alt=&quot;&quot;/&gt;&lt;font face=&quot;kanit&quot; size=&quot;+1&quot;&gt;&amp;nbsp;สวนพฤกษศาสตร์โรงเรียนวิทยาลัยเทคนิคเขมราฐ&lt;/font&gt;&lt;/a&gt;
&lt;button class=&quot;navbar-toggler&quot; type=&quot;button&quot; data-toggle=&quot;collapse&quot; data-target=&quot;#navbarSupportedContent&quot; aria-controls=&quot;navbarSupportedContent&quot; aria-expanded=&quot;false&quot; aria-label=&quot;Toggle navigation&quot;&gt;
&lt;span class=&quot;navbar-toggler-icon&quot;&gt;&lt;/span&gt;
&lt;/button&gt;
&lt;div class=&quot;collapse navbar-collapse justify-content-end&quot; id=&quot;navbarSupportedContent&quot;&gt;
&lt;ul class=&quot;navbar-nav&quot;&gt;
&lt;li class=&quot;nav-item active&quot;&gt;
&lt;a class=&quot;nav-link&quot; href=&quot;index.html&quot;&gt;&lt;font face=&quot;kanit&quot; size=&quot;+1&quot;&gt;หน้าแรก&lt;/font&gt;&lt;span class=&quot;sr-only&quot;&gt;(current)&lt;/span&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li class=&quot;nav-item active&quot;&gt;
&lt;a class=&quot;nav-link&quot; href=&quot;index1.html&quot;&gt;&lt;font face=&quot;kanit&quot; size=&quot;+1&quot;&gt;ความเป็นมา&lt;/font&gt;&lt;span class=&quot;sr-only&quot;&gt;(current)&lt;/span&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li class=&quot;nav-item dropdown active&quot;&gt;
&lt;a class=&quot;nav-link dropdown-toggle&quot; id=&quot;navbarDropdown&quot; role=&quot;button&quot; data-toggle=&quot;dropdown&quot; aria-haspopup=&quot;true&quot; aria-expanded=&quot;false&quot;&gt;&lt;font face=&quot;kanit&quot; size=&quot;+1&quot;&gt;ขั้นตอนการดำเนินงาน&lt;/font&gt;&lt;/a&gt;
&lt;div class=&quot;dropdown-menu&quot; aria-labelledby=&quot;navbarDropdown&quot;&gt;
&lt;a class=&quot;dropdown-item&quot; href=&quot;step1.html&quot;&gt;&lt;font face=&quot;kanit&quot; size=&quot;+1&quot;&gt;ด้านที่ 1 การบริหารและการจัดการ&lt;/font&gt;&lt;/a&gt;
&lt;a class=&quot;dropdown-item&quot; href=&quot;step2.html&quot;&gt;&lt;font face=&quot;kanit&quot; size=&quot;+1&quot;&gt;ด้านที่ 2 องค์ประกอบต่างๆ&lt;/font&gt;&lt;/a&gt;
&lt;a class=&quot;dropdown-item&quot; href=&quot;step3.html&quot;&gt;&lt;font face=&quot;kanit&quot; size=&quot;+1&quot;&gt;ด้านที่ 3 ผลการดำเนินงาน&lt;/font&gt;&lt;/a&gt;
&lt;a class=&quot;dropdown-item&quot; href=&quot;step4.html&quot;&gt;&lt;font face=&quot;kanit&quot; size=&quot;+1&quot;&gt;ด้านที่ 4 ความถูกต้องทางวิชาการ&lt;/font&gt;&lt;/a&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;nav-item active&quot;&gt;
&lt;a class=&quot;nav-link&quot; href=&quot;index2.html&quot;&gt;&lt;font face=&quot;kanit&quot; size=&quot;+1&quot;&gt;ข้อมูลพรรณไม้&lt;/font&gt;&lt;span class=&quot;sr-only&quot;&gt;(current)&lt;/span&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li class=&quot;nav-item active&quot;&gt;
&lt;a class=&quot;nav-link&quot; href=&quot;index3.html&quot;&gt;&lt;font face=&quot;kanit&quot; size=&quot;+1&quot;&gt;ทะเบียนพรรณไม้&lt;/font&gt;&lt;span class=&quot;sr-only&quot;&gt;(current)&lt;/span&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li class=&quot;nav-item active&quot;&gt;
&lt;a class=&quot;nav-link&quot; href=&quot;index4.html&quot;&gt;&lt;font face=&quot;kanit&quot; size=&quot;+1&quot;&gt;3 สาระ&lt;/font&gt;&lt;span class=&quot;sr-only&quot;&gt;(current)&lt;/span&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li class=&quot;nav-item active&quot;&gt;
&lt;a class=&quot;nav-link&quot; href=&quot;index5.html&quot;&gt;&lt;font face=&quot;kanit&quot; size=&quot;+1&quot;&gt;ฐานทรัพยากร&lt;/font&gt;&lt;span class=&quot;sr-only&quot;&gt;(current)&lt;/span&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/nav&gt;
&lt;br&gt;
&lt;br&gt;
&lt;div class=&quot;container-fluid&quot;&gt;
&lt;form action=&quot;index2-add.php&quot; align=&quot;center&quot;&gt;
&lt;input type=&quot;search&quot; name=&quot;b_search&quot; id=&quot;b_search&quot; class=&quot;textbox&quot; placeholder=&quot;ค้นหาพรรณไม้...&quot; autocomplete =&quot;off&quot;
size=&quot;100&quot; aria-label=&quot;Search&quot; style=&quot;width: 50%&quot;&gt;&lt;button class=&quot;buttonbox&quot; name=&quot;submit&quot; type=&quot;submit&quot; id=&quot;submit&quot;
style=&quot;width: 8%&quot;&gt;&lt;i class=&quot;fa fa-search&quot;&gt;&lt;/i&gt;&lt;/button&gt;&lt;/form&gt;
&lt;br&gt;
&lt;br&gt;
&lt;p align=&quot;left&quot; style=&quot;padding-left: 7%&quot;&gt;&lt;font face=&quot;kanit&quot; size=&quot;+2&quot;&gt;รายชื่อพรรณไม้&lt;/font&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;index2-add.php?act=add&quot; class=&quot;btn btn-success btn-sm&quot; style=&quot;width: 130px; height: 40px; border-radius: 20px;&quot;&gt;&lt;font face=&quot;kanit&quot; size=&quot;+1&quot;&gt;+ พรรณไม้&lt;/font&gt;&lt;/a&gt;
&lt;/font&gt;&lt;/p&gt;
&lt;div class=&quot;container-fluid&quot; style=&quot;width: 90%&quot; align=&quot;center&quot;&gt;
&lt;table class=&quot;table table-responsive&quot;&gt;
&lt;thead&gt;
&lt;tr align=&quot;center&quot;&gt;
&lt;th width=&quot;14%&quot; align=&quot;center&quot; scope=&quot;col&quot;&gt;&lt;font face=&quot;kanit&quot; size=&quot;+1&quot;&gt;รหัสพรรณไม้&lt;/font&gt;&lt;/th&gt;
&lt;th width=&quot;18%&quot; align=&quot;center&quot; scope=&quot;col&quot;&gt;&lt;font face=&quot;kanit&quot; size=&quot;+1&quot;&gt;ชื่อพรรณไม้&lt;/font&gt;&lt;/th&gt;
&lt;th width=&quot;18%&quot; align=&quot;center&quot; scope=&quot;col&quot;&gt;&lt;font face=&quot;kanit&quot; size=&quot;+1&quot;&gt;ข้อมูลพรรณไม้&lt;/font&gt;&lt;/th&gt;
&lt;th width=&quot;18%&quot; align=&quot;center&quot; scope=&quot;col&quot;&gt;&lt;font face=&quot;kanit&quot; size=&quot;+1&quot;&gt;รูปพรรณไม้&lt;/font&gt;&lt;/th&gt;

&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;?php
//เรียกไฟล์เชื่อมต่อฐานข้อมูล
require 'connect.php';
//คิวรี่ข้อมูลมาแสดงในตาราง
$stmt = $conn-&gt;prepare(&quot;SELECT* FROM plant_info&quot;);
$stmt-&gt;execute();
$result = $stmt-&gt;fetchAll();
foreach($result as $row) {
?&gt;
&lt;tr&gt;
&lt;td&gt;&lt;?= $row['b_id'];?&gt;&lt;/td&gt;
&lt;td&gt;&lt;?= $row['b_name'];?&gt;&lt;/td&gt;
&lt;td&gt;&lt;?= $row['b_pdf'];?&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;upload/PDF&lt;?= $row['b_pdf'];?&gt;&quot;&gt;PDF&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src=&quot;upload/img&lt;?= $row['b_img'];?&gt;&quot; width=&quot;50%&quot;&gt;&lt;/td&gt;
&lt;?php } ?&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;container&quot;&gt;
&lt;div class=&quot;row&quot;&gt;
&lt;div class=&quot;col-md-12&quot;&gt; &lt;br&gt;
&lt;?php
//ถ้ามีการส่งพารามิเตอร์ method get และ method get ชือ act = add จะแสดงฟอร์มเพิ่มข้อมูล
if(isset($_GET['act']) &amp;&amp; $_GET['act']=='add'){ ?&gt;
&lt;h3&gt;&lt;font face=&quot;kanit&quot; size=&quot;+1&quot;&gt;เพิ่มข้อมูลพรรณไม้&lt;/font&gt;&lt;/h3&gt;
&lt;form method=&quot;post&quot; enctype=&quot;multipart/form-data&quot;&gt;
&lt;h3&gt;&lt;font face=&quot;kanit&quot; size=&quot;+1&quot;&gt;รหัสพรรณไม้&lt;/h3&gt;
&lt;input type=&quot;text&quot; name=&quot;b_id&quot; required class=&quot;form-control&quot; placeholder=&quot;รหัสพรรณไม้...&quot; minlength=&quot;13&quot;&gt;&lt;/font&gt;&lt;br&gt;
&lt;h3&gt;&lt;font face=&quot;kanit&quot; size=&quot;+1&quot;&gt;ชื่อพรรณไม้&lt;/h3&gt;
&lt;input type=&quot;text&quot; name=&quot;b_name&quot; required class=&quot;form-control&quot; placeholder=&quot;ชื่อพรรณไม้...&quot; minlength=&quot;2&quot;&gt;&lt;/font&gt;&lt;br&gt;
&lt;h3&gt;&lt;font face=&quot;kanit&quot; size=&quot;+1&quot;&gt;ไฟล์รายละเอียดข้อมูลพรรณไม้&lt;font face=&quot;kanit&quot; color=&quot;red&quot; size=&quot;+0.5&quot;&gt;&amp;nbsp;&amp;nbsp;*อัพโหลดได้เฉพาะ .pdf&lt;/font&gt;&lt;/font&gt;&lt;/h3&gt;
&lt;input type=&quot;file&quot; name=&quot;b_pdf&quot; required class=&quot;form-control&quot; accept=&quot;.pdf&quot;&gt;&lt;br&gt;
&lt;h3&gt;&lt;font face=&quot;kanit&quot; size=&quot;+1&quot;&gt;รูปพรรณไม้&lt;font color=&quot;red&quot; size=&quot;+0.5&quot;&gt;&amp;nbsp;&amp;nbsp;*อัพโหลดได้เฉพาะ .jpeg , .jpg , .png .JPG&lt;/font&gt;&lt;/font&gt;&lt;/h3&gt;
&lt;input type=&quot;file&quot; name=&quot;b_img&quot; required class=&quot;form-control&quot; accept=&quot;image/jpeg, image/png, image/jpg, image/JPG&quot;&gt; &lt;br&gt;
&lt;div class=&quot;row&quot;&gt;
&lt;div class=&quot;d-grid gap-2 col-sm-6&quot;&gt;
&lt;button type=&quot;submit&quot; class=&quot;btn btn-primary&quot;&gt;&lt;font face=&quot;kanit&quot;&gt;เพิ่มข้อมูลพรรณไม้&lt;/font&gt;&lt;/button&gt;
&lt;/div&gt;
&lt;div class=&quot;d-grid gap-2 col-sm-6&quot;&gt;
&lt;a href=&quot;index2-add.php&quot; class=&quot;btn btn-warning&quot;&gt;&lt;font face=&quot;kanit&quot;&gt;ยกเลิก&lt;/font&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;br&gt;
&lt;/form&gt;
&lt;?php } ?&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;footer style=&quot;background: #A772E9&quot; class=&quot;text-center&quot; style=&quot;width: 100%&quot;&gt;
&lt;div class=&quot;container&quot; style=&quot;height: 100%&quot;&gt;
&lt;div class=&quot;col-12&quot;&gt;
&lt;p valign=&quot;center&quot;&gt;&lt;font face=&quot;kanit&quot; size=&quot;+1&quot;&gt;วิทยาลัยเทคนิคเขมราฐ | 128 หมู่ 5 ตำบลหนองนกทา อำเภอเขมราฐ จังหวัดอุบลราชธานี 34170 โทรศัพท์ 045-210500 สถานีวิทยุเพื่อการศึกษาพัฒนาอาชีพ Fm.100.25 MHz &lt;/font&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/footer&gt;&lt;/div&gt;
&lt;!-- jQuery (necessary for Bootstrap's JavaScript plugins) --&gt;
&lt;script src=&quot;js/jquery-3.4.1.min.js&quot;&gt;&lt;/script&gt;
&lt;!-- Include all compiled plugins (below), or include individual files as needed --&gt;
&lt;script src=&quot;js/popper.min.js&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;js/bootstrap-4.4.1.js&quot;&gt;&lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;
&lt;?php
// echo '&lt;pre&gt;';
// print_r($_POST);
// echo '&lt;/pre&gt;';
// exit();



//ตรวจสอบตัวแปรที่ส่งมาจากฟอร์ม
if (isset($_POST['b_id']) &amp;&amp; isset($_POST['b_name']) &amp;&amp; isset($_POST['b_pdf']) &amp;&amp; isset($_POST['b_img']) ){
//ไฟล์เชื่อมต่อฐานข้อมูล
require 'connect.php';
//สร้างตัวแปรวันที่เพื่อเอาไปตั้งชื่อไฟล์ใหม่
$date = date(&quot;Ymd_His&quot;);
//สร้างตัวแปรสุ่มตัวเลขเพื่อเอาไปตั้งชื่อไฟล์ที่อัพโหลดไม่ให้ชื่อไฟล์ซ้ำกัน
$numrand = (mt_rand());
$b_pdf = (isset($_POST['b_pdf']) ? $_POST['b_pdf'] : '');
$upload=$_FILES['b_pdf']['name'];
$b_img = (isset($_POST['b_img']) ? $_POST['b_img'] : '');
$upload=$_FILES['b_img']['name'];

//มีการอัพโหลดไฟล์
if ($upload != '') {
//ตัดขื่อเอาเฉพาะนามสกุล
$typefile = strrchr($_FILES['b_pdf']['name'], &quot;.&quot;);
$typefile = strrchr($_FILES['b_img']['name'], &quot;.&quot;);

//สร้างเงื่อนไขตรวจสอบนามสกุลของไฟล์ที่อัพโหลดเข้ามา

if ($typefile == '.pdf') {
$path = &quot;upload/PDF/&quot;;
}
elseif ($typefile == '.JPG' || $typefile == '.jpg' || $typefile == '.png' || $typefile == '.jpeg') {
$path = &quot;upload/img/&quot;;

//ตั้งชื่อไฟล์ใหม่เป็น สุ่มตัวเลข+วันที่
$newname = $numrand.$date.$typefile;
$path_copy = $path.$newname;
//คัดลอกไฟล์ไปยังโฟลเดอร์
move_uploaded_file($_FILES['b_pdf']['tmp_name'], $path_copy);
move_uploaded_file($_FILES['b_pdf']['tmp_name'], $path_copy);

//ประกาศตัวแปรรับค่าจากฟอร์ม
$b_name = $_POST['b_id'];
$b_name = $_POST['b_name'];
//sql insert
$stmt = $conn-&gt;prepare(&quot;INSERT INTO plant_info
(b_id, b_name, b_pdf, b_img)
VALUES
(:b_id, :b_name, '$newname','$newname')&quot;);
//bindParam data type
$stmt-&gt;bindParam(':b_id', $b_id, PDO::PARAM_STR_CHAR);
$stmt-&gt;bindParam(':b_name', $b_name, PDO::PARAM_STR);
$result = $stmt-&gt;execute();
$conn = null; //close connect db

//เงื่อนไขตรวจสอบการเพิ่มข้อมูล
if ($result) {
echo '&lt;script&gt;
setTimeout(function() {
swal({
title: &quot;เพิ่มข้อมูลสำเร็จ&quot;,
type: &quot;success&quot;
}, function() {
window.location = &quot;index2-add.php&quot;; //หน้าที่ต้องการให้กระโดดไป
});
}, 1000);
&lt;/script&gt;';
} else {
echo '&lt;script&gt;
setTimeout(function()&quot;,
type: &quot;error&quot;
}, function() {
window.location = &quot;index2-add.php&quot;; //หน้าที่ต้องการให้กระโดดไป
});
}, 1000);
&lt;/script&gt;';
} //else ของ if result

} else { //ถ้าไฟล์ที่อัพโหลดไม่ตรงตามที่กำหนด
echo '&lt;script&gt;
setTimeout(function() {
swal({
title: &quot;คุณอัพโหลดไฟล์ไม่ถูกต้อง&quot;,
type: &quot;error&quot;
}, function() {
window.location = &quot;index2-add.php&quot;; //หน้าที่ต้องการให้กระโดดไป
});
}, 1000);
&lt;/script&gt;';
} //else ของเช็คนามสกุลไฟล์

} // if($upload !='') {

} //isset
?&gt;


ประวัติการแก้ไข
2023-01-16 20:06:07
2023-01-16 20:09:19
2023-01-16 20:11:47
2023-01-16 20:14:16
2023-01-16 20:14:28
2023-01-16 20:14:40
2023-01-16 20:14:51
2023-01-16 20:15:02
2023-01-16 20:15:37
2023-01-16 20:15:48
2023-01-16 20:15:55
2023-01-16 20:16:03
2023-01-16 20:16:10
2023-01-16 20:19:42
2023-01-16 20:22:27
2023-01-16 20:24:37
2023-01-16 20:24:56
2023-01-16 20:25:08
2023-01-16 20:25:20
2023-01-16 20:25:33
2023-01-16 20:25:40
2023-01-16 20:25:51
2023-01-16 20:25:58
2023-01-16 20:26:10
2023-01-16 20:29:48
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2023-01-13 09:26:52 By : @@22B9f
 


 

No. 14



โพสกระทู้ ( 9,559 )
บทความ ( 2 )



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


ตั้งกระทู้ใหม่เลยครับ
แล้ว เอา tag ภาษา ครอบหน่อย ครับ อยู่เหนือ box ข้อความ ด้านขวามือ
จะทำให้ดูง่ายขึ้น
Code (PHP)
echo '123456';

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2023-01-13 17:37:49 By : Chaidhanan
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : รบกวนสอบถามครับคือผมใช้ PHP ทำการ Upload ไฟล์รูปภาพ ลงในฐานข้อมูลลงใน SQL Server แต่อัพโหลดไม่ผ่านคับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 01
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่