พบกับบทความเกี่ยวกับคอมพิวเตอร์และ programming ได้ที่ http://articles.modoeye.com | บล็อกอาหาร
PHP development / upload ภาพแบบ fixed ขนาด
gogove
gogove
Tue 2 May 2006 11:43:26

สวัดดีค่ะคุณ administator เห็นคำตอบที่คุณตอบเป็นคำตอบที่รวดเร็วและเข้าใจดีค่ะ  อยากถามเกี่ยวกับการ upload รูปภาพแบบกำหนดขนาดไม่เกิน 100 kb จำนวน 6 รูปภาพในหน้าฟอร์มเดียวพอจะมีวิธีทำอย่างไรบ้างค่ะ

Administrator
Tue 2 May 2006 12:03:20
การให้โปรแกรม Resize ไฟล์ตามขนาดของไฟล์ทำได้ครับแต่กินทรัพยากรของระบบมากๆครับ (ผมไม่ขอแนะนำให้ใช้ส่วนนี้) แต่ถ้าจะจำกัดขนาดไฟล์ที่ทำการ upload เข้ามานั้นสามารถทำได้ครับ
โดยฟอร์มตัวอย่างของผมเป็น
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="userfile1">
<input type="file" name="userfile2">
<input type="file" name="userfile3">
<input type="file" name="userfile4">
<input type="file" name="userfile5">
<input type="file" name="userfile6">
<input type="submit" value="upload">
</form>

upload.php
<?
if(isset($_FILES["userfile1"]["size"]) && $_FILES["userfile1"]["size"] > 0){
    if($_FILES["userfile1"]["size"] > 100000){
       echo "Error : File \"".$_FILES["userfile1"]["name"]."\" file size exceed";
    }else{
       //uploadfile
    }
}

if(isset($_FILES["userfile2"]["size"]) && $_FILES["userfile2"]["size"] > 0){
    if($_FILES["userfile2"]["size"] > 100000){
       echo "Error : File \"".$_FILES["userfile2"]["name"]."\" file size exceed";
    }else{
       //uploadfile
    }
}

if(isset($_FILES["userfile3"]["size"]) && $_FILES["userfile3"]["size"] > 0){
    if($_FILES["userfile3"]["size"] > 100000){
       echo "Error : File \"".$_FILES["userfile3"]["name"]."\" file size exceed";
    }else{
       //uploadfile
    }
}

....

if(isset($_FILES["userfile6"]["size"]) && $_FILES["userfile6"]["size"] > 0){
    if($_FILES["userfile6"]["size"] > 100000){
       echo "Error : File \"".$_FILES["userfile6"]["name"]."\" file size exceed";
    }else{
       //uploadfile
    }
}
?>

ประมาณนี้ครับ
gogove
gogove
Tue 2 May 2006 12:11:35

แล้วถ้ากำหนดชนิดไฟล์ด้วยละค่ะ เช่น jpeg,gif,png  ต้องแทรก ไว้ตรงไหนค่ะ

gogove
gogove
Tue 2 May 2006 12:17:08

เพื่อให้ภาพลงใน folder ที่รองรับภาพนะค่ะ  แต่ในdb มีเพียงชื่อภาพเท่านั้นนะค่ะ  ภาพจริงๆ จะเก็บไว้ใน folder 

Administrator
Tue 2 May 2006 12:59:37
การหานามสกุลของไฟล์
<?
$exp = explode('.', $_FILES["userfile1"]["name"]);
$ext = $exp[count($exp) - 1];

?>
gogove
gogove
Wed 3 May 2006 11:31:46

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

$picwo1=$_FILES['picwo1']['tmp_name'];
$picwo1_name=$_FILES['picwo1']['name'];
$picwo1_size=$_FILES['picwo1']['size'];
$picwo1_type=$_FILES['picwo1']['type'];

$detail=$_POST['detail'];

if (!$picwo1) {     
 echo "<h3>ERROR : ไม่สามารถอัพโหลดได้</h3>";
 } else  {
     $array_last=explode(".",$picwo1_name);
     $c=count($array_last)-1;
     $lastname=strtolower($array_last[$c]) ;
     if ($lastname=="gif" or $lastname=="jpg" or $lastname=="jpeg") { 
       if($picwo1_name<>"") {
                  $picwomen1=$picwo1_name;
                  if(is_file("picwomen1/"."LA".$txtNo.".".$picwomen1))
                  {
                  unlink("picwomen1/"."LA".$txtNo.".".$picwomen1);
                  }
                  copy($picwo1,"picwomen1/"."LA".$txtNo.".".$picwomen1);
                       } //end if */
   } else  {
echo "<h3>ERROR : นามสกุลต้อง.gif , *.jpg , *.jpeg เท่านั้น</h3>";
}
unlink($picwo1);
}

Administrator
Wed 3 May 2006 15:13:36
จากโค๊ดก็เพียงเปลี่ยนชื่อตัวแปรให้ตรงกับชื่อของ file field เท่านั้นครับ จำนวน 6 filed แต่ถ้าต้องการโค๊ดที่สั้นกว่าก็อ่านออกมาแบบ array ก็ได้ครับ
gogove
gogove
Thu 4 May 2006 15:06:23

ทำแล้วก๊าบยังไงก็ไม่เกิดอะไรขึ้นมันฟ้องว่า   ERROR : ไม่สามารถอัพโหลดได้   ตอน insert  ใช้ตัว pic1  เป็นตัวที่เก็บในdb  ส่วนตัวที่ใช้เป็น values ชื่อว่า   '".$picwo1_name."'  ไม่เกิดอะไรขี้นเลยค่ะ  ปวดหัวจังทำมาทั้งวันแล้ว  ขอคำแนะนำหน่อยค่ะ

Administrator
Thu 4 May 2006 21:11:54
ตรวจสอบว่าใน form tag ใส่ enctype="multipart/form-data" แล้วหรือยังครับ
จากนั้นหลังจาก submit ในไฟล์ upload นั้นลองใส่
<?
print_r($_FILES);
?>
เพื่อตรวจสอบว่ามีการ post ไฟล์มาหรือไม่ครับ
gogove
gogove
Fri 5 May 2006 10:38:35

เจอแล้วค่ะ ลืมตัวนี้นี่เอง  enctype="multipart/form-data" ขอบคุณค่ะ

Reply
Name:
E-mail:
Home | Services | Forum | Classified | Directories | Support | Contact
ATOM feed RSS 0.9 feed RSS 1.0 feed RSS 2.0 feed
Copyright © 2005 - 2007 Modoeye.com, All Rights Reserved.
Disclaimer | Privacy policy | Term of Use | Term of Services
Valid XHTML Valid CSS! PHP: Hypertext Preprocessor MySQL database Apache Powered! FreeBSD Power to serve
Modoeye Sitemap Client login