วันอาทิตย์ที่ 27 พฤษภาคม พ.ศ. 2555

วิธีอัพโหลดรูป และย่อรูปตามขนาดที่ต้องการ


Download ไฟล์ทั้งหมด http://banchiangmai.com/download/pic.zip

------------------------------------------------------------------------

ขั้นตอน:
1. สร้างโฟลเดอร์ abc ไว้ใน C:\AppServ\www ดังรูป

2. ดาวน์โหลด ไฟล์ http://banchiangmai.com/download/resize.zip
แล้วนำมา unzip ไว้ที่ในโฟลเดอร์ C:\Appserv\www\abc\

3.  ให้สร้างไฟล์ชื่อ pic1.php ให้อยู่ใน C:\AppServ\www\abc

โค้ด: pic1.php
<!DOCTYPE HTML>
<html>
 <head>
 <meta http-equiv="content-type" content="text/html;charset=utf-8">
 </head>
 <body>
 <form name="form1" method="POST" action="pic2.php" ENCTYPE="multipart/form-data">
Picture <input type="file" name="p" size="60">
<br>
<input type="submit" value="Save">
 </form>
 </body>
</html>

form จะมีคำสั่งเพิ่มคือ ENCTYPE="multipart/form-data" เพื่อให้รับไฟล์ได้
<input type="file">  จะเป็นการสร้าง form control ที่มีปุ่ม สำหรับเลือกไฟล์



4. ให้ run ไฟล์ดังนี้      http://localhost/abc/pic1.php จะเห็นผลลัพธ์ดังรูป


5. ให้สร้างไฟล์ pic2.php 

โค้ด: pic2.php
<!DOCTYPE HTML>
<html>
 <head>
 <meta http-equiv="content-type" content="text/html;charset=utf-8">
</head>
 <body>
<?php
include("resize.php");
?>
<?php
$p=$_FILES['p'];
$p_type=$_FILES["p"]['type'];
?>
<?php
function check_type_only_pic($type_check) {
 $File_Type_Allow = array(
                    "image/gif" /* .gif*/,
                    "image/pjpeg" /*.jpg, .jpeg*/,
                    "image/jpeg" /* .jpg, .jpeg*/);
   for ($i=0;$i<count($File_Type_Allow);$i++) {
      if ($File_Type_Allow[$i] == $type_check) {
         return true;
      }
   }
   return false;
}
?>
 <?php
if(!empty($p_type)){ //ถ้ามีการเลือกรูปภาพ
   $check_type=check_type_only_pic($p_type);
   if($check_type){
     $num_random=array("2","3","4","5","6","7","8","9"); //สร้างชื่อไฟล์ แบบสุ่มตัวเลข 6 ตัว
     $fn='';$n=0;
     while($n<=5){
      $ran_num = $num_random[rand(0,7)];
      $fn = $fn.$ran_num;
      $n++;
     }
     if (!empty($_FILES['p']['name'])) {
      $tempFile = $_FILES['p']['tmp_name'];
      $ext = pathinfo($_FILES['p']['name'], PATHINFO_EXTENSION);
      $filename_of_picture=$fn.'.'.$ext; //ชื่อไฟล์ และ นามสกุล
      $targetFile="$filename_of_picture";
      move_uploaded_file($tempFile,$targetFile); //copy รูปเก็บไว้ที่ Server
      $image = new SimpleImage();
      $image->load("$targetFile");
      $image->resizeToWidth(100);
      $image->save("$filename_of_picture");
      //copy รูปเก็บไว้ที่ Server ให้ทับไฟล์เดิม โดยย่อรูปให้กว้าง 100px
      echo "copy รูปลงเก็บไว้ เรียบร้อยแล้ว";
     }
   }
}
?>

</body>
</html>


6. ให้ run ไฟล์ดังนี้      http://localhost/abc/pic1.php จะเห็นผลลัพธ์ดังรูป

7. คลิกปุ่ม Browse...


8. คลิกปุ่ม Save



9. จากไฟล์ pic1.php  จะส่งตัวแปร มาที่ไฟล์ pic2.php และมีข้อความแสดงว่า copy ไฟล์รูป เรียบร้อยแล้ว


10. เข้าไปยังโฟลเดอร์ abc จะเห็นว่ามีไฟล์รูป ขนาดกว้าง 100px อยู่ ซึ่งชื่อของรูป จะสุ่มจากโปรแกรมมาให้

ไม่มีความคิดเห็น:

แสดงความคิดเห็น