Long Live The King
ข้าพเจ้าไม่ได้มีพรสวรรค์พิเศษอะไร ข้าพเจ้าเพียงแต่มีความกระหายใคร่รู้อยู่เสมอ ทุ่มเทให้กับสิ่งที่อยากรู้ พากเพียรอย่างทรหด และสำรวจวิจารณ์ความรู้ของตัวเองเป็นประจำ ปัจจัยเหล่านี้คือที่มาของแนวคิดต่างๆ ของข้าพเจ้า .... อัลเบิร์ต ไอน์สไตน์

วันพฤหัสบดีที่ 20 ธันวาคม พ.ศ. 2555

UPDATE วิธีการ upload ไฟล์ขึ้น webserver ด้วย PHP + Resize



ในบทความนี้จะเป็นการนำเอาบทความเรื่อง "วิธีการ 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>


1 ความคิดเห็น:

  1. ชื่อไฟล์เป็นภาษาไทย แล้วหาไม่พบ เป็นตัวยึกยือ...แก้ยังไงครับ

    ตอบลบ

© Bookneo, AllRightsReserved.

ขับเคลื่อนโดย Blogger Designed by Nikhorn Thongchuay