ในบทความนี้จะเป็นการนำเอาบทความเรื่อง "วิธีการ upload ไฟล์ขึ้น webserver ด้วย PHP อย่างง่าย" มาปรับปรุงเพิ่มเติมการ Resize เข้าไป ความจริงเรื่องนี้ ผมก็คิดอยู่นานว่าจะรวมเอาวิธีการ upload ลง Database ด้วยดีใหม แต่การใช้งานจริงก็ไม่จำเป็นเสมอไปว่าจะต้อง upload file ลงฐานข้อมูลทั้งหมด เพราะฉนั้นเรื่องการ upload file ลงฐานข้อมูลขอยกไปตอนหน้า มาดูเรื่องการ Resize กันก่อนครับ.....
จากไฟล์เดิม บทความก่อนหน้านี้ เราจะนำ form สำหรับ upload มาโดยไม่ต้องปรับอะไรเพิ่มเติม ดังนี้
ไฟล์ upload_resize.php
<div id="form_upload"> <form method="post" enctype="multipart/form-data"> <center> Image: <input name="imageupload" type="file" size="35"/><br/> <input type="submit" name="submit" value="Upload"/></center> </form> </div>
แต่จะปรับเพิ่มเติมในเรื่องของการโชว์รูป ตอนที่เราได้ upload เสร็จแล้วด้วยการเพิ่มลิงค์เพื่อดูขนาดภาพจริง
ดังนี้
ไฟล์ upload_resize.php
<div id="showimage"> <?php if($_POST[submit]){ echo "<a href='$showpic'> <img width=150 src='$showpic'></img></a>";}?> </div>
จากนั้นก็เขียนนำ code php มาปรับเพิ่มเติมด้งนี้
ไฟล์ upload_resize.php
$imageupload = $_FILES['imageupload']['tmp_name']; $imageupload_name = $_FILES['imageupload']['name']; $path = "uploads";//กำหนด Folder ที่เก็บรูปภาพ $newwidth=500; //กำหนด ขนาดความกว้างของรูปภาพ ที่ต้องการ Resize if(isset($_POST['submit'])){ if($imageupload){ $arraypic = explode(".",$imageupload_name);//แบ่งชื่อไฟล์กับนามสกุลออกจากกัน $filename = strtolower($arraypic[0]); //แปลงชื่อไฟล์เป็นตัวพิมพ์เล็ก $filetype = strtolower($arraypic[1]); //แปลงนามสกุลไฟล์เป็นตัวพิมพ์เล็ก if($filetype=="jpg" || $filetype=="jpeg" || $filetype=="png" || $filetype=="gif"){ if($filetype=="jpg" || $filetype=="jpeg"){ $src = imagecreatefromjpeg($imageupload);//ฟังก์ชั่นสำหรับ create file ตามนามสกุลไฟล์ } else if($filetype=="png"){ $src = imagecreatefrompng($imageupload); } else if($filetype=="gif"){ $src = imagecreatefromgif($imageupload); } list($width,$height)=getimagesize($imageupload); $newheight=($height/$width)*$newwidth; $tmp=imagecreatetruecolor($newwidth,$newheight); imagecopyresampled($tmp,$src,0,0,0,0,$newwidth,$newheight,$width,$height); if($filetype=="jpg" || $filetype=="jpeg"){ imagejpeg($tmp,$path."/".$filename.".".$filetype); } else if($filetype=="png"){ imagepng($tmp,$path."/".$filename.".".$filetype); } else{ imagegif($tmp,$path."/".$filename.".".$filetype); } }else { echo "<div><center><h3>ERROR : ไม่สามารถ Upload รูปภาพได้</h3></center></div>"; } } } $showpic = $path."/".$filename.".".$filetype;
จบแล้วสำหรับการ Update วิธีการ upload ไฟล์ขึ้น webserver....
Code ที่เสร็จแล้ว
ไฟล์ upload_resize.php
<?php $imageupload = $_FILES['imageupload']['tmp_name']; $imageupload_name = $_FILES['imageupload']['name']; $path = "uploads"; $newwidth=500; if(isset($_POST['submit'])){ if($imageupload){ $arraypic = explode(".",$imageupload_name); $filename = strtolower($arraypic[0]); //แปลงเป็นตัวพิมพ์เล็ก $filetype = strtolower($arraypic[1]); if($filetype=="jpg" || $filetype=="jpeg" || $filetype=="png" || $filetype=="gif"){ if($filetype=="jpg" || $filetype=="jpeg"){ $src = imagecreatefromjpeg($imageupload); } else if($filetype=="png"){ $src = imagecreatefrompng($imageupload); } else if($filetype=="gif"){ $src = imagecreatefromgif($imageupload); } list($width,$height)=getimagesize($imageupload); $newheight=($height/$width)*$newwidth; $tmp=imagecreatetruecolor($newwidth,$newheight); imagecopyresampled($tmp,$src,0,0,0,0,$newwidth,$newheight,$width,$height); if($filetype=="jpg" || $filetype=="jpeg"){ imagejpeg($tmp,$path."/".$filename.".".$filetype); } else if($filetype=="png"){ imagepng($tmp,$path."/".$filename.".".$filetype); } else{ imagegif($tmp,$path."/".$filename.".".$filetype); } }else { echo "<div><center><h3>ERROR : ไม่สามารถ Upload รูปภาพได้</h3></center></div>"; } } } $showpic = $path."/".$filename.".".$filetype; ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title></title> <style> body{background: #eeeeee;margin:0 auto;} #form_upload{margin:0px auto;} #showimage{margin:100px auto 20px auto;} </style> </head> <body> <center><div id="showimage"> <?php if($_POST[submit]){ echo "<a href='$showpic'> <img width=150 src='$showpic'></img></a>";}?> </div></center> <div id="form_upload"> <form method="post" enctype="multipart/form-data"> <center> Image: <input name="imageupload" type="file" size="35"/><br/> <input type="submit" name="submit" value="Upload"/></center> </form> </div> </body> </html>
ชื่อไฟล์เป็นภาษาไทย แล้วหาไม่พบ เป็นตัวยึกยือ...แก้ยังไงครับ
ตอบลบ