PHP Ionic Angularjs Phonegap AJAX Javascript CSS MySQL jQuery Forum

ช่วยหน่อยครับ อัพโหลดภาพแล้ว ไม่ยอมดึงไปยังโฟลเดอร์ที่กำหนดไว้

ช่วยหน่อยครับ อัพโหลดภาพแล้ว ไม่ยอมดึงไปยังโฟลเดอร์ที่กำหนดไว้

////////////////////////////แก้ไขสมาชิก/////////////////////
if($_POST['action']== "editprofile")
{
$m_id = trim($_POST['m_id']);
$name = trim($_POST['name']);
$lastname = trim($_POST['lastname']);
$email = trim($_POST['email']);
$address = $_POST['address'];
$province_id = $_POST['PROVINCE_ID'];
$amphur_id = $_POST['amphur'];
$district_id = $_POST['district'];
$code = trim($_POST['code']);
$phone = trim($_POST['phone']);
$attach 	= $_FILES['image_name'];
$fileinfo	= pathinfo($attach['name']);
$filetype	= $fileinfo['extension'];


		//if($attach['error']==0)
	//{
		if($extension!=='jpg'&& $extension!=='png' && $extension!=='jpeg'  && $extension!=='gif'  )
		{
			      exit("<script>alert('กรุณาตรวจสอบนามสกุลไฟล์รูปภาพของคุณ');history.back();</script>");
		
		}else
		{

		// ดึง class มาใช้
		 require_once('upload/class.upload.php') ;
		 
		 	 // เริ่มต้นใช้งาน class.upload.php ด้วยการสร้าง instant จากคลาส
         $upload_image = new upload($_FILES['image_name']) ; // $_FILES['image_name'] ชื่อของช่องที่ให้เลือกไฟล์เพื่ออัปโหลด	 
         // เปลี่ยนชื่อไฟล์
		 $upload_image->file_new_name_body = time();	
		  	//  ถ้าหากมีภาพถูกอัปโหลดมาจริง
       if ( $upload_image->uploaded ) {
		 
		    $upload_image->image_resize         = true ; // อนุญาติให้ย่อภาพได้

			$upload_image->image_x              = 400 ; // กำหนดความกว้างภาพเท่ากับ 400 pixel

			$upload_image->image_ratio_y        = true; // ให้คำณวนความสูงอัตโนมัติ

 
                    // ย่อขนาดภาพให้เล็กลงหน่อย  โดยยึดขนาดภาพตามความกว้าง  ความสูงให้คำณวนอัตโนมัติ  
				
       echo $upload_image->process( "images" ); // เก็บภาพไว้ในโฟลเดอร์ที่ต้องการ 
 
        // ถ้าหากว่าการจัดเก็บรูปภาพไม่มีปัญหา  เก็บชื่อภาพไว้ในตัวแปร เพื่อเอาไปเก็บในฐานข้อมูลต่อไป
        if ( $upload_image->processed ) {
 
            $image_name =  $upload_image->file_dst_name ; // ชื่อไฟล์หลังกระบวนการเก็บ จะอยู่ที่ file_dst_name
            $upload_image->clean(); // คืนค่าหน่วยความจำ	
			$sqlu = "update members set image_name = '$image_name' where m_id = '$m_id'";
			mysql_query($sqlu) or die ("error = $sqlu");     
			       }// END if ( $upload_image->processed )
 
                     }//END if ( $upload_image->uploaded )	
					 // update รูปใหม่
			}
		
		//}

	$sql_1 = "SELECT * FROM province WHERE PROVINCE_ID = '$province_id' ";
    $result_1 = mysql_query($sql_1);
    $row_1 = mysql_fetch_array($result_1);
    $province_name = $row_1['PROVINCE_NAME'];

    $sql_2 = "SELECT * FROM amphur WHERE AMPHUR_ID = '$amphur_id' ";
    $result_2 = mysql_query($sql_2);
    $row_2 = mysql_fetch_array($result_2);
    $amphur_name = $row_2['AMPHUR_NAME'];

    $sql_3 = "SELECT * FROM district WHERE DISTRICT_ID = '$district_id' ";
    $result_3 = mysql_query($sql_3);
    $row_3 = mysql_fetch_array($result_3);
    $district_name = $row_3['DISTRICT_NAME'];

$sql = "update members set m_name = '$name' , m_lastname = '$lastname' , m_email = '$email', image_name = '$image_name' m_phone = '$phone'  , m_address = '$address' , PROVINCE_ID ='$province_id', AMPHUR_ID = '$amphur_id', DISTRICT_ID = '$district_id' , m_code = '$code' where m_id = '$m_id'";
mysql_query($sql) or die ("error = $sql");
exit("<script>alert('แก้ไขข้อมูลส่วนตัวเรียบร้อย');window.location='index.php';</script>");

}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////


///////////////////////////ฟอร์มการเพิ่มรูป//////////////////////
<td align="right" class="fontblack">รูปภาพ : </td>
                <td><input name="image_name" type="file" id="image_name" value="<?PHP echo $row['image_name']; ?>""/>
                    <span class="fonred">*</span> 
                    </td>
////////////////////////////////////////////////////////////////////////////

ปัญหาคือชื่อรูปถูกเพิ่มเข้าไปในฐานข้อมูล แต่รูปกลับไม่ถูกดึงไปเก็บไว้ในโฟลเดอร์ที่กำหนดไว้คือ โฟลเดอร์ images ทำให้รูปไม่โชว์

 

โดย:  Speakphone IP: 27.145.159.xxx วันที่: 06-09-2015 เวลา: 16:09:20

คำแนะนำ และการใช้งาน

สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ


  • ( หรือ สามารถทำการ สมัครสมาชิก และล็อกอิน ด้วย ปุ่ม Log in with Facebook ด้านล่าง )
 ความคิดเห็นที่ 6
ขอขอบคุณทุกความคิดเห็นจริงๆ นะครับ ผมทำได้แล้ว ครับ โค้ดไม่ได้ผิดอะไรเลย แต่ลืมเติม enctype="multipart/form-data" ตรง form นะครับ โค้ดเยอะเลยพลาดจริงๆ ขอบคุณจริงๆ ครับ ท่านเทพ ทุกท่าน

โดย:  Speakphone IP: 27.145.159.xxx วันที่: 08-09-2015 เวลา: 19:10:16
 ความคิดเห็นที่ 5
ลองเอาไปดูตัวอย่างที่ผมปเจอมานะครบ ไม่รู้ว่า ใช่อันเดียวกันไหม
http://www.itangmo.com

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

ลองดูว่า ไฟล์สำหรับบันทึก กับ โฟลเดอร์ images อยู่ละดับเดียวกันไหม ถ้าอยู่คนละที่ระดับลองเปลี่ยนดู
$upload_image->process('../images/'); 
sinv
$upload_image->process('ชื่อโฟลเดอร์/images/');  ประมาณนี้นะครับ  น่าจะอยู่แถวๆนี้ละ ลองดูครับ 


โดย:  Wowowow IP: 58.11.122.xxx วันที่: 08-09-2015 เวลา: 09:44:28
 ความคิดเห็นที่ 4
ขอบคุณทุกความเห็นนะครับ แต่ชื่อทุกอย่างเข้าฐานข้อมูลนะครับ แต่รูปแค่ไม่ถูกดึงเข้ามาในไฟล์ที่กำหนด ผมลองทุกทางแล้วครับ แต่น่าจะผิดที่ตัวแปล เพราะลอง echo ดูแล้ว มันไม่ดึง

โดย:  Speakphone IP: 27.145.159.xxx วันที่: 08-09-2015 เวลา: 00:14:51
 ความคิดเห็นที่ 3
บรรทัดที่ 47 น่าจะมี /  หรือเปล่า  และ จะecho  ทำไมโค้ดเดิมไม่ต้อง  ถ้าเอามาจาก
class.upload.php  เดียวกันนะครับ ไปเจอมาคุ้นๆ

<?php
            include "class.upload.php"; //เรียกใช้ class.upload.php
            $upload_image = new upload($_FILES['image_name']);
            if ($upload_image->uploaded) {               
                $upload_image->image_resize         = true; //เปิดใช้งานการลดขนาดรูป
                $upload_image->image_x              = 400; //ลดขนาดรูปด้านแก X เหลือ 400px
                $upload_image->image_ratio_y        = true; //คงอัตราส่วนด้านแกน y ไว้ตามขนาดของแกน x
                $upload_image->process('images/'); //โฟเดอร์ที่ใช้เก็บไฟล์รูป
                if ($upload_image->processed) { //ดำเนินการลดขนาดรูป
                    echo 'image resized<br/>'; //ลดขนาดสำเร็จให้แสดงคำว่า image resized
                    echo '<img src="images/'.$upload_image->file_dst_name.'"/>'; //แสดงภาพที่เพิ่งอัพโหลดไป
                    $upload_image->clean();
                    // code sql 
                } else {
                    echo 'error : ' . $upload_image->error; //ลดขนาดไม่สำเร็จให้แสดงคำว่า error และตามด้วยสาเหตุที่ error
                }
            }
            else {
                echo "กรุณาเลือกไฟล์";
            }
        ?>



โดย:  Wowowow IP: 61.90.13.xxx วันที่: 07-09-2015 เวลา: 09:45:36
 ความคิดเห็นที่ 2
โค้ดแปลกๆ ไม่ค่อยปะติดปะต่อ 
อย่างตัวแปร $extension อันนี้มาจากไหน? ทีใช่ต้องเป็น $filetype หรือเปล่า
และก็กรณีเทียบ string ระวังเรื่องตัวเล็กตัวใหญ่ด้วย ถ้าเทียบแบบเป็นตัวเล็ก อาจตะต้องแปลง
ตัวแปรนั้นด้วย strtolower($filetype)=='jpg' อะไรแนวนี้
ส่วนรูปไม่โชว์ ลองดูว่าไฟล์ถูกอัพได้จริงไหม มีไฟล์ไปอยู่ในโฟลเดอร์ที่อัพหรือเปล่า ถ้ามี
ก็ให้ดู path ไฟล์ที่มาแสดงว่า ถูกต้องไหม อะไรแนวนี้ เป็นแนวทาง


โดย:  Ninenik IP: 1.46.170.xxx วันที่: 06-09-2015
 ความคิดเห็นที่ 1
ในส่วนของตรงนี้ด้วยครับ เวลาผมอัพไฟล์ นามสกุลเป็น jpg แล้วมันก็ยังแจ้งเตือนว่าอัพโหลดไฟล์ไม่ถูกต้องอีก 

  1. if($extension!=='jpg'&& $extension!=='png' && $extension!=='jpeg'  && $extension!=='gif'  )  
  2.         {  
  3.                   exit("<script>alert('กรุณาตรวจสอบนามสกุลไฟล์รูปภาพของคุณ');history.back();</script>"); 


โดย:  Speakphone IP: 27.145.159.xxx วันที่: 06-09-2015 เวลา: 16:17:46