upload ภาพไม่ได้

สำหรับผู้ที่ เริ่มต้น Programming - PHP มีอะไร แนะนำ หรือข้อสงสัยต้องบอร์ด นี้ คนที่มีความรู้ แบ่งปันคนอื่นบ้างนะ ปัญหาการเขียนโปรแกรม แบบ OOP Session Cookies php network

Moderators: mindphp, ผู้ดูแลกระดาน

mastersun
PHP Newbie
PHP Newbie
Posts: 4
Joined: 11/09/2009 1:41 pm

upload ภาพไม่ได้

Post by mastersun »

ผมใช้ dream เขียนนะครับ upload ทุกอย่างได้หมดครับ ยกเว้นไฟล์ภาพ รบกวนขอความกรุณาท่านเวบมาสเตอร์ดูให้หน่อยครับ มันติดที่ตรงไหน ผมเอามาให้ดู 2 ไฟล์ นะครับ

ไฟล์ฟอร์มส่งข้อมูลนะครับ
<?php require_once('Connections/config.php'); ?>
<?php
mysql_select_db($database_config, $config);
$query_Recordset1 = "SELECT * FROM member";
$Recordset1 = mysql_query($query_Recordset1, $config) 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=windows-874" />
<title>เพิ่มข้อมูล</title>
</head>

<body>
<form action="admin_member_add_upload.php" method="POST" enctype="multipart/form-data" name="form1" id="form1">
<table width="393" border="1">
<tr>
<td colspan="2"><div align="center">เพิ่มข้อมูล upload picture </div></td>
</tr>
<tr>
<td width="76">ชื่อ-สกุล</td>
<td width="301"><label>
<input name="name" type="text" id="name" />
</label></td>
</tr>
<tr>
<td>ที่อยู่</td>
<td><label>
<textarea name="address"></textarea>
</label></td>
</tr>
<tr>
<td>รูปภาพ</td>
<td><label>
<input name="uploadedfile" type="file" id="uploadedfile" />
</label></td>
</tr>
<tr>
<td>&nbsp;</td>
<td> &nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <label>
<input type="submit" name="Submit" value="ตกลง" />
</label>
<label>
&nbsp;&nbsp;&nbsp;
<input name="reset" type="reset" id="reset" value="reset" />
</label></td>
</tr>
</table>

</form>
</body>
</html>
<?php
mysql_free_result($Recordset1);
?>

ไฟลื upload รูป

<?php
//ตั้งค่าตัวแปรเพื่อใช้งาน
$hostname="localhost";
$user="root";
$password="1234";
$dbname="person";
$tbname="member";
//ติดต่อฐานข้อมูล
mysql_connect($hostname,$user,$password) or die ("ติดต่อฐานข้อมูลไม่ได้");
mysql_select_db($dbname) or die("ติดต่อฐานข้อมูลไม่ได้");//เลือกฐานข้อมูล
$sql = "insert into $tbname (name,address,image_path) values ('$name','$address','$image_path')";//เพิ่มข้อมูลในคำสั่ง SQL
$dbquery = mysql_db_query($dbname,$sql);


$idData = mysql_insert_id();


$path = "imagepath"; //ตัวแปรชื่อของ folder ที่ใช้เก็บไฟล์
if($Uploadedfile !="")
{
if(strchr($UploadedFile_name,".")==".jpg" || strchr($UploadedFile_name,".")==".jpeg" ||
strchr($UploadedFile_name,".")==".gif" || strchr($UploadedFile_name,".")==".JPG" ||
strchr($UploadedFile_name,".")==".JPEG" || strchr($UploadedFile_name,".")==".GIF")
{
$RenameFile = $idData.strchr($UploadedFile_name,".");
if (copy($Uploadedfile,"$path/$RenameFile"))
{
unlink($UploadedFile);
$pathPic="$path/$RenameFile";
}else{
print"ERROR ...ไม่สามารถ upload <br>";
}
}
}else{
$pathPic="Null";
}
$sql = "update $tbname set image_path ='$pathPic' where Id ='$idData'";
$dbquery = mysql_db_query($dbname,$sql);
echo "<H1>เพิ่มข้อมูลในฐานข้อมูลแล้ว</H1>";
echo "<H2><a href = admin_member_add.php>เพิ่มข้อมูลใหม่</a></H2>";
echo "<H2><a href = admin_membershow.php>หน้าแสดงข้อมูล</a></H2>";
mysql_close();
?>
User avatar
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
Posts: 25954
Joined: 22/09/2008 6:18 pm
Contact:

Re: upload ภาพไม่ได้

Post by mindphp »

ลองดูบทความนี้
https://www.mindphp.com/modules.php?name ... cle&sid=16

ปล.ลงโค้ด กรุณาครอบโค้ดหน่อยนะครับ
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
mastersun
PHP Newbie
PHP Newbie
Posts: 4
Joined: 11/09/2009 1:41 pm

Re: upload ภาพไม่ได้

Post by mastersun »

รบกวนเช็คโค้ดให้ได้ไหมครับ ผมเอามาจากหนังสือ แต่ไม่รู้ว่าผิดตรงไหน ที่ท่านแนะนำให้ไปดู ผมดูไม่รู้เรื่องเท่าไร แต่ผมทดสอบโค้ดกับ appserv code ตัวอื่นก็ใช้งานปกติ ไม่รู้ว่าจะทำไงครับ รบกวนผู้รู้ตอบทีครับ

ปล.ผมครอบโค้ดไม่เป็นครับ
User avatar
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
Posts: 25954
Joined: 22/09/2008 6:18 pm
Contact:

Re: upload ภาพไม่ได้

Post by mindphp »

ลองตัดออกมา เฉพาะส่วน ที่เกี่ยวกับ upload ซิะครับจะได้เช็คได้ง่าย ขึ้น
ส่วนบทความที่เขียนไว้ ไม่เข้าใจบรรทัดไหนก็ถามไว้ได้ครับ

Code: Select all

[code=php] โค้ด ของท่าน 
[/code]
BBcode
https://www.mindphp.com/forums/faq.php#f30
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
mastersun
PHP Newbie
PHP Newbie
Posts: 4
Joined: 11/09/2009 1:41 pm

Re: upload ภาพไม่ได้

Post by mastersun »

คือผมอยากให้ท่านเช็คดูใหหน่อยว่า file upload ของผมถูกหรือเปล่านะครับ มันผิดตรงไหน คือมันไม่เก็บภาพให้เลยอ่าครับ แต่ข้อมูลที่เป็น text ได้ครับ ตัวที่มีปัญหาข้างนี้หล่ะครับ ผมไม่รู้ว่าต้องไปเช็คที่ตรงไหน เพราะผมก็ทำเหมือนที่หนังสือมันบอกทุกอย่าง รบกวนหน่อยครับ

Code: Select all

<?php 
//ตั้งค่าตัวแปรเพื่อใช้งาน
$hostname="localhost";
$user="root";
$password="1234";
$dbname="person";
$tbname="member";
//ติดต่อฐานข้อมูล
mysql_connect($hostname,$user,$password) or die ("ติดต่อฐานข้อมูลไม่ได้");
mysql_select_db($dbname) or die("ติดต่อฐานข้อมูลไม่ได้");//เลือกฐานข้อมูล
$sql = "insert into $tbname (name,address,image_path) values ('$name','$address','$image_path')";//เพิ่มข้อมูลในคำสั่ง SQL
$dbquery = mysql_db_query($dbname,$sql);


$idData = mysql_insert_id();


$path = "imagepath"; //ตัวแปรชื่อของ folder ที่ใช้เก็บไฟล์
if($Uploadedfile !="")
{
if(strchr($UploadedFile_name,".")==".jpg" || strchr($UploadedFile_name,".")==".jpeg" ||
strchr($UploadedFile_name,".")==".gif" || strchr($UploadedFile_name,".")==".JPG" ||
strchr($UploadedFile_name,".")==".JPEG" || strchr($UploadedFile_name,".")==".GIF")
{
$RenameFile = $idData.strchr($UploadedFile_name,".");
if (copy($Uploadedfile,"$path/$RenameFile"))
{
unlink($UploadedFile);
$pathPic="$path/$RenameFile";
}else{
print"ERROR ...ไม่สามารถ upload <br>";
}
}
}else{
$pathPic="Null";
}
$sql = "update $tbname set image_path ='$pathPic' where Id ='$idData'";
$dbquery = mysql_db_query($dbname,$sql);
echo "<H1>เพิ่มข้อมูลในฐานข้อมูลแล้ว</H1>";
echo "<H2><a href = admin_member_add.php>เพิ่มข้อมูลใหม่</a></H2>";
echo "<H2><a href = admin_membershow.php>หน้าแสดงข้อมูล</a></H2>";
mysql_close();
?>
ปล. คือผมกำลังทำระบบ upload ภาพ พร้อมชื่อเรื่อง และสามารถดึงมาแสดงได้ แต่ทำไม่ได้ซักที แต่ถ้าท่าน webmaster มี code แบบนี้ ที่เข้าใจง่ายๆ กระผมขอได้หรือไม่ เด๋วผมจะไปศึกษาพัฒนาต่อ ถือว่าเป็นวิทยาทานแล้วกัน ขอบคุณล่วงหน้านะครับ
User avatar
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
Posts: 25954
Joined: 22/09/2008 6:18 pm
Contact:

Re: upload ภาพไม่ได้

Post by mindphp »

ตัวอย่างการทำ upload อย่างง่าย แนะนำให้ค่อยศึกษาไปทีละส่วนแล้วค่อยเอามารวมกันเป็นระบบจะทำให้เรารู้ว่าโค้ดที่เขียนไป มันทำหน้าที่อะไรบ้าง เป็นไปได้แรกก็ควรเขียนโค้ดเอง ดูจากต้นฉบับก็ได้

HTML

Code: Select all

<form enctype="multipart/form-data" action="uploader.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="100000" />
Choose a file to upload: <input name="uploadedfile" type="file" /><br />
<input type="submit" value="Upload File" />
</form>

PHP

Code: Select all

$target_path = "uploads/";

$target_path = $target_path . basename( $_FILES['uploadedfile']['name']); 

if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
    echo "The file ".  basename( $_FILES['uploadedfile']['name']). 
    " has been uploaded";
} else{
    echo "There was an error uploading the file, please try again!";
}

 
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
mastersun
PHP Newbie
PHP Newbie
Posts: 4
Joined: 11/09/2009 1:41 pm

Re: upload ภาพไม่ได้

Post by mastersun »

ขอบคุณครับ เด๋วผมให้ท่านดูงานของผมที่มีปัญหานะครับ

ผมอยากเก็บข้อมูลดังฟอร์มข้างล่างครับ
ฟอร์มส่งไฟล์
ฟอร์มส่งไฟล์
11.JPG (13.32 KiB) Viewed 1642 times
นี่คือไฟล์ ฟอร์มที่ใช้กรอกข้อมูลนะครับ

Code: Select all

<!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=windows-874" />
<title>เพิ่มข้อมูล</title>
</head>

<body>
<form action="admin_member_add_upload.php" method="POST" enctype="multipart/form-data" name="form1" id="form1">
  <table width="393" border="0">
    <tr>
      <td colspan="2"><div align="center">เพิ่มข้อมูล upload picture </div></td>
    </tr>
    <tr>
      <td width="76">ชื่อ-สกุล</td>
      <td width="301"><label>
        <input name="name" type="text" id="name" />
      </label></td>
    </tr>
    <tr>
      <td>ที่อยู่</td>
      <td><label>
        <textarea name="address"></textarea>
      </label></td>
    </tr>
    <tr>
      <td>รูปภาพ</td>
      <td><label>
      <input name="image_path" type="file" id="image_path" />
      </label></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td> &nbsp;
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <label>
        <input type="submit" name="Submit" value="ตกลง" />
      </label>
        <label>
        &nbsp;&nbsp;&nbsp;
        <input name="reset" type="reset" id="reset" value="reset" />
        </label></td>
    </tr>
  </table>
  
</form>
</body>
</html>
เมื่อ รันผ่านบราวส์เชอร์จะได้แบบนี้

ส่วนนี้ เป็นไฟล์ที่ใช้ upload ครับ ผมรบกวนท่านดู ไฟล์นี่ให้หน่อย ว่ามันผิดตรงใน ทำไมมันไม่เก็บรูปให้ผม มันเก็บแต่ชื่อ และที่อยู่ ส่วนรูปภาพมันไม่เก็บเลยครับ ไม่รู้มันไปหล่นที่ตรงไหน เช็คโค้ดเจ้าปัญหาข้างล่างให้ผมหน่อย

Code: Select all

<?php 
//ตั้งค่าตัวแปรเพื่อใช้งาน
$hostname="localhost";
$user="root";
$password="1234";
$dbname="person";
$tbname="member";
//ติดต่อฐานข้อมูล
mysql_connect($hostname,$user,$password)  or die ("ติดต่อฐานข้อมูลไม่ได้");
mysql_select_db($dbname) or die("ติดต่อฐานข้อมูลไม่ได้");//เลือกฐานข้อมูล
$sql = "insert into  $tbname (name,address,image_path)  values ('$name','$address','$image_path')";//เพิ่มข้อมูลในคำสั่ง SQL
$dbquery = mysql_db_query($dbname,$sql);

//หาค่า ID ที่เคยเพิ่มไปก่อนหน้านี้
$idData = mysql_insert_id();
//echo $idData;//ถ้าต้องการแสดงค่า id ที่เคยเพิ่มลงไปว่าถูกต้องหรือไม่
//upload ข้อมูล
$path = "imagepath"; //ตัวแปรชื่อของ folder ที่ใช้เก็บไฟล์
if($UploadedFile !="")//ตรวจสอบค่า field find ที่ส่งมาว่าว่างหรือไม่
	{
	//กำหนดประเภทของfile ที่จะอับโหลด ถ้าต้องการใช้กับ file ที่ไม่ใช่รูปภาพ ต้องตั้งตัวแปรเอง
		if(strchr($UploadedFile_name,".")==".jpg" || strchr($UploadedFile_name,".")==".jpeg" ||
		strchr($UploadedFile_name,".")==".gif" || strchr($UploadedFile_name,".")==".JPG" ||
		strchr($UploadedFile_name,".")==".JPEG" || strchr($UploadedFile_name,".")==".GIF")
			{
				$RenameFile = $idData.strchr($UploadedFile_name,".");//เปลี่ยนชื่อให้เท่า id ของแต่ละ record
				if (copy($Uploadedfile,"$path/$RenameFile"))//คำสั่ง upload รูปภาพไปไว้ในตำแหน่งโฟลเดอร์ที่กำหนด
				{
					unlink($UploadedFile);
					$pathPic="$path/$RenameFile";//เก็บตำแหน่งและชื่อของไฟล์ที่อับโหลดในตัวแปร
					}else{
					print"ERROR ...ไม่สามารถ upload <br>";//แสดงข้อความว่าอัพไม่ได้
					}
					}
				}else{
					$pathPic="Null";//ถ้าไม่มีค่าให้เป็นค่าว่าง
					}
					
	//แก้ไขข้อมูลเพื่อจะจำตำแหน่งของรูปไปเก็บไว้ในฐานข้อมูล
	$sql = "update $tbname set image_path ='$pathPic' where Id ='$idData'";
	$dbquery = mysql_db_query($dbname,$sql);
	echo "<H1>เพิ่มข้อมูลในฐานข้อมูลแล้ว</H1>";
	echo "<H2><a href = admin_member_add.php>เพิ่มข้อมูลใหม่</a></H2>";//ลิงค์ไปยังหน้าที่กำหนด
	echo "<H2><a href = admin_membershow.php>หน้าแสดงข้อมูล</a></H2>";
mysql_close();//ปิดการติดต่อฐานข้อมูล
?>
นี่เป็นตารางที่ใช้เก็บข้อมูลนะครับ
ส่วนนี่เป็นฐานข้อมูลนะครับ
ส่วนนี่เป็นฐานข้อมูลนะครับ
13.JPG (91.22 KiB) Viewed 919 times
User avatar
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
Posts: 25954
Joined: 22/09/2008 6:18 pm
Contact:

Re: upload ภาพไม่ได้

Post by mindphp »

ทำแบบนี้ให้ได้ก่อน แล้วค่อยไปขั้นต่อไปครับ
mindphp wrote:ตัวอย่างการทำ upload อย่างง่าย แนะนำให้ค่อยศึกษาไปทีละส่วนแล้วค่อยเอามารวมกันเป็นระบบจะทำให้เรารู้ว่าโค้ดที่เขียนไป มันทำหน้าที่อะไรบ้าง เป็นไปได้แรกก็ควรเขียนโค้ดเอง ดูจากต้นฉบับก็ได้

HTML

Code: Select all

<form enctype="multipart/form-data" action="uploader.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="100000" />
Choose a file to upload: <input name="uploadedfile" type="file" /><br />
<input type="submit" value="Upload File" />
</form>

PHP

Code: Select all

$target_path = "uploads/";

$target_path = $target_path . basename( $_FILES['uploadedfile']['name']); 

if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
    echo "The file ".  basename( $_FILES['uploadedfile']['name']). 
    " has been uploaded";
} else{
    echo "There was an error uploading the file, please try again!";
}

 
ถ้าได้แล้ว
ลองไปดู

Code: Select all

 if($Uploadedfile !="") 
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
Post Reply
  • Similar Topics
    Replies
    Views
    Last post

Return to “Programming - PHP”

Who is online

Users browsing this forum: Google Adsense [Bot] and 14 guests