อยากทราบวิธี upload รูป

จะตรวจสอบอย่างไรในไฟล์ edit ว่าถ้าไม่มีไฟล์ที่ upload มาให้กลับไปอ้างอิงไฟล์เดิมครับ

26 ธ.ค. 2551 8 3,217

????????????..............
#1

งงไหมครับ

<?  //edit_save.php

//include("../check.php");
if(empty($_REQUEST['product_cate_id'])){
 
 echo "<script>alert('id fail');window.location='indexcat.php';</script>";
exit();
}
if(empty($_POST['product_cate_name'])){
 
 echo "<script>alert('add ชื่อหมวดหมู่');window.location='indexcat.php';</script>";
exit();
}
if(empty($_POST['product_cate_detail'])){
 //echo "<script>alert('add รายละเอียด  ');history.back();</script> ";
 echo "<script>alert('add รายละเอียด');window.location='indexcat.php';</script>
";
exit();
}
if(empty($_POST['icon1_add'])){
 $icon1_add=0;
 }
 
 if(empty($_POST['vdo_add'])){
 $vdo_add=0;
 }
 if(empty($_POST['vote_add'])){
 $vote_add=0;
 }
 
 if(empty($_POST['detail_add'])){
 $detail_add=0;
 }
 
 
 $day = $_POST['day'];
 $month = $_POST['month'];
 $year = $_POST['year'];
 $product_cate_id = $_POST['product_cate_id'];
    $product_cate_name = $_POST['product_cate_name'];
 $product_cate_detail = $_POST['product_cate_detail'];
 $icon1_add = $_POST['icon1_add'];
 $vdo_add = $_POST['vdo_add'];
 $vote_add = $_POST['vote_add'];
 $detail_add  = $_POST['detail_add'];
 $product_cate_date_added  = $_POST['product_cate_date_added'];
 $product_cate_status  = $_POST['product_cate_status'];

 $product_cate_last_modified = "$year-$month-$day";
 include("../../connect.php");

$sql="select * from product_categories where  product_cate_id=$product_cate_id ";
 $result = mysql_query($sql) or die("$sql Error");
 $row = mysql_fetch_array($result);
 $product_cate_image==$row['product_cate_detail'];
//file pic
if($_FILES["product_cate_image"]["tmp_name"]==""){
 $uploadDir1 ='../../images/categories/photo/';
$thumbDir1 ='../../images/categories/thumb/';

Foreach ($_FILES["$product_cate_image"]["error"] as $key1 => $error) {
    if ($error == 0 ) { 
  $title1 = trim($_REQUEST['title'][$key1]) ;
  $size1 = $_FILES["$product_cate_image"]["size"][$key1];
        $type1 = $_FILES["$product_cate_image"]["type"][$key1];
        $tmp_name1 = $_FILES["$product_cate_image"]["tmp_name"][$key1];
        $fname1 = $_FILES["$product_cate_image"]["name"][$key1];
  $uploadfile1 = $uploadDir1 . basename($fname1);
  $thumbfile1 = $thumbDir1 . $fname1;
}
}
}
$uploadDir1 ='../../images/categories/photo/';
$thumbDir1 ='../../images/categories/thumb/';

Foreach ($_FILES["product_cate_image"]["error"] as $key1 => $error) {
    if ($error == 0 ) { 
  $title1 = trim($_REQUEST['title'][$key1]) ;
  $size1 = $_FILES["product_cate_image"]["size"][$key1];
        $type1 = $_FILES["product_cate_image"]["type"][$key1];
        $tmp_name1 = $_FILES["product_cate_image"]["tmp_name"][$key1];
        $fname1 = $_FILES["product_cate_image"]["name"][$key1];
  $uploadfile1 = $uploadDir1 . basename($fname1);
  $thumbfile1 = $thumbDir1 . $fname1;
  //echo $title1,$size1,$type1,$tmp_name1, $fname1;

  if (!ereg ("^image/pjpeg" , $type1 )) {
     echo "<br>upload ไม่ได้ เฉพาะ JPG เท่านั้น กรุณาเช็คชนิดหรือขนาดไฟล์ ";
     die;
  }
  $limit = 812000 ;
  if ( $size1 > $limit ) {
     echo "<br>upload ไม่ได้ ขนาดไฟล์ใหญ่เกินกว่า $limit ไบท์ ";
     die;
  }
  
  move_uploaded_file($tmp_name1, "$uploadDir1$fname1");
 // echo "$key1 : $title1 , $size1 Byte &nbsp; $type1 &nbsp;  $fname1 , $thumbfile1<br>
";

//file pic
 
 
 
  
 //file pic
 
list($w1, $h1) = getimagesize($uploadfile1);  // Get new dimensions
 $quality = 100;
 $w2 = 100 ; #
 $percent = $w2 / $w1 ;
 $h2 = $h1 * $percent ;

 $h2 = 80 ; #
 $percent = $h2 / $h1 ;
 $w2 = $w1 * $percent ;

 $w2 = 120 ; #
 $h2 = 90 ; #

 $im = imageCreateTrueColor($w2+4, $h2+4); 
 $im1 = imageCreateFromJpeg($uploadfile1);

 $dark = ImageColorAllocate($im,185,185,185); // dark
 $light = ImageColorAllocate($im,230,230,230); 
 $white = ImageColorAllocate($im,254,254,254);
 imagefilledRectangle($im, 0, 0, $w2+3 , $h2+3, $white); 
 imagefilledRectangle($im, 4, 4, $w2+4 , $h2+4, $light);
 imagefilledRectangle($im, 3, 3, $w2+2 , $h2+2, $dark);

 imageCopyResampled($im, $im1, 0, 0, 0, 0, $w2, $h2, $w1, $h1);
 #imageCopyResized($im, $im1, 0, 0, 0, 0, $w2, $h2, $w1, $h1);
 imageString($im, 5, 5, $h2 - 20, "wapsystem", $light);
 imagejpeg($im, $thumbfile1 , $quality); # %
 //imagejpeg($im, $uploadDir1 , $quality);
 imageDestroy($im);
 imageDestroy($im1);
 //echo "<hr color=red noshade size=1>";

 }

}

  $sql2="UPDATE `product_categories` SET `product_cate_id` = '$product_cate_id',
`product_cate_name` = '$product_cate_name',
`product_cate_detail` = '$product_cate_detail',
`product_cate_image` = '$fname1',
`icon1_add` = '$icon1_add',
`vdo_add` = '$vdo_add',
`vote_add` = '$vote_add',
`detail_add` = '$detail_add',
`product_cate_date_added` = '$product_cate_date_added',
`product_cate_last_modified` = '$product_cate_last_modified',
`product_cate_status` = '$product_cate_status'WHERE `product_cate_id` =$product_cate_id";
  //echo "$sql <hr>";
  mysql_query($sql2) or die("$sql2 Error");
//file pic
 echo "<script>alert('ข้อมูลถูกเก็บเรียบร้อยแล้ว');window.location='indexcat.php';</script>";
 exit();
?>

#2

คือจะตรวจสอบก่อนว่าถ้าไม่มีไฟล์ upload มาใหม่ให้อ้างอิงจากไฟล์เดิมน่ะครับ เช็คไงครับ ช่วยหน่อยนะครับ

#3

พอดีไม่ได้อ่าน code ละเอียดนะครับ ถ้าให้เดา คือว่า

จะทำหน้าแก้ไขข้อมูลใช่มั้ยครับ

ถ้ามีีการ upload รูปมาใหม่ ก็ให้ ทำการ resize รูปใหม่นั้น แล้วก็ update ฐานข้อมูล

แต่ถ้า ไม่มีการ upload รูปมา ก็ให้ ใ้ช้รูปเดิม ที่มีอยู่

if(empty($_FILES["product_cate_image"]["tmp_name"]){   
      ไม่มีการ uplaod รูปมา
      update เฉพาะ ฟิลด์ที่เปลี่ยนแปลง ไม่ต้อง update ฟิลด์ ที่เก็บรูป
}else{
      มีการ upload รูปมา
      ทำการ resize
      update ฐานข้อมูล
}


ถ้าผิดพลาดขออภัยด้วยแล้วกันครับ
#4

ขอบคุณหลายครับ เส้นผมบังพระอาทิตย์เจง ๆเลยเหอๆๆๆ ขอบคุณเจ้าของเว็บ ขอบคุณคุณเชลซีคอเดียวกัน
#5

อีกนิดหนึ่งครับ

จากสคริปด้านบน เราจะใส่คำสั่ง update ไว้ตรงไหนบ้างนะ เพราะผมลองแล้วมันออกนอกลูปไปเลย ไม่มีการเปลี่ยนแปลงน่ะครับ


ขอบคุณล่วงหน้ากาฟ
 

#6

ได้แล้วครับ ขอบคุณมาก ๆ
#7

ดีนะครับแต่ความรู้ยังไม่ได้นะ ขอแบบอย่างง่าย ๆ นะมีปะครับ

#8
ความคิดเห็น
ไฟล์อัปโหลด ชนิด jpg, jpeg ขนาดไฟล์ไม่เกิน 1024
^