ยินดีต้อนรับ กรุณา สมัครสมาชิก หรือเข้าสู่ระบบ

Home » webboard » PHP
เข้าชม : 3572

Upload และ Resize รูป (php)

โพสต์เมื่อ: วันอังคาร 21 มิถุนายน 2554  21:55 น.

1.เริ่มต้นสร้างไฟล์ Code HTML ชื่อ upload.html
<form id="form1" name="form1" method="post" action="upload.php" 
enctype="multipart/form-data">
<input name="file" type="file" id="file" />
<span>สนับสนุนไฟล์นามสกุล jpg, bmp, png, gif</span><br />
<input type="submit" name="button" id="button" value="Upload" />
</form>

php upload resize
[ ความเห็นที่ 1]
RE : Upload และ Resize รูป (php)
โพสต์เมื่อ: วันอังคาร 21 มิถุนายน 2554  21:58 น.

2. เขียน PHP Script แล้วตั้งชื่อ upload.php

/**
* ฟังกชั่น Upload และ Resize รูป
* By Rakyimdesign.com, E-mail info@rakyimdesign.com
*/
$SAVE_PATH = $_SERVER['DOCUMENT_ROOT']."/files/"; //พาสที่ต้องการนำไฟล์ไปเก็บไว้
/**
* ฟังก์ชั่นตรวจสอบว่าเป็นไฟล์รูปภาพหรือไม่
* bool isImage(resource $file_obj)
*/
function isImage($file_obj){
$IMG_TYPE = array('image/pjpeg', 'image/jpeg', 'image/gif', 'image/png', 
'image/x-png');
$file_type = $file_obj['type'];
return(in_array($file_type, $IMG_TYPE));
}
/**
* ฟั่งชั่น resize รูปภาพโดยกำหนด ความกว้าง,สูง สูงสุด
* $save_filename ชื่อไฟล์ไม่ต้องมีนามสกุล
* $ww ความกว้าง สูงสุด
* $hh ความสูง สูงสุด
* return เป็นชื่อไฟล์ที่ถูกเก็บ
* string uploadResizeTo(resource $file_obj,string $save_path,string 
$save_filename[,int $ww,int $hh])
*/
function uploadResizeTo($file_obj, $save_path, $save_filename, $ww=200, 
$hh=200){
$file_name = $file_obj['name'];
$file_type = $file_obj['type'];
$tmp_name = $file_obj['tmp_name'];
switch($file_type){
case "image/pjpeg" :
case "image/jpeg" :
$images_orig = ImageCreateFromJPEG($tmp_name);
break;
case "image/gif":
$images_orig = ImageCreateFromGIF($tmp_name);
break;
case "image/png":
case "image/x-png":
$images_orig = ImageCreateFromPNG($tmp_name);
break;
case "image/bmp":
$images_orig = ImageCreateFromWBMP($tmp_name);
break;
default:
return(false);
}
$orig_width = ImagesX($images_orig);
$orig_height = ImagesY($images_orig);
if($orig_width > $ww || $orig_height>$hh){
if($orig_width > $orig_height){
$hh = ($ww/$orig_width)*$orig_height;
}else{
$ww = ($hh/$orig_height)*$orig_width;
}
}else{
$hh = $orig_height;
$ww = $orig_width;
}
$images_fin = ImageCreateTrueColor($ww, $hh);
@imagecopyresized($images_fin, $images_orig, 0, 0, 0, 0, $ww, $hh, 
$orig_width, $orig_height);$ext = end(explode(".", $file_name));
$newfilename = $save_filename.".".$ext;
$save = $save_path.$newfilename;
switch($file_type){
case "image/pjpeg" :
case "image/jpeg" :
case "image/jpg" :
ImageJPEG($images_fin, $save ,90); // image quality = 90
break;
case "image/gif":
ImageGIF($images_fin,$save);
break;
case "image/png":
case "image/x-png":
ImagePNG($images_fin,$save);
break;
case "image/bmp":
imageWBMP($images_fin,$save);
default:
return(false);
}
ImageDestroy($images_orig);
ImageDestroy($images_fin);
return($newfilename);}
/**
* เริ่มต้นการใช้งาน
*
*/
if(isset($_FILES["file"])){
if($_FILES["file"]["size"]>0){
if(!file_exists($SAVE_PATH)) mkdir($SAVE_PATH); //สร้าง Folder ปลายทางเมื่อไม่พบ
if(isImage($_FILES["file"])){ //ตรวจสอบว่าเป็นไฟล์รูปภาพ
//เรียกฟังก์ชั่น Resize
if($newfilename = uploadResizeTo($_FILES["file"], $SAVE_PATH, "new_file2", 
100, 100))
{
echo 'อัพโหลดไฟล์เรียบร้อย <strong>'.$newfilename.'</strong>';
}else echo 'ไม่สามารถอัพโหลดได้';
}else{
echo 'กรุณาใช้ไฟล์รูปภาพเท่านั้น';
}
}else{
echo 'ท่านยังไม่ได้อัพโหลดไฟล์';
}
}
								




php upload resize
[ ความเห็นที่ 2]
RE : Upload และ Resize รูป (php)
โพสต์เมื่อ: วันอังคาร 21 มิถุนายน 2554  22:03 น.
ที่มา
[ ความเห็นที่ 3]
RE : Upload และ Resize รูป (php)
โพสต์เมื่อ: วันอาทิตย์ 13 พฤษภาคม 2555  18:04 น.
function uploadResizeTo อันนี้ใช้ได้ ผ่านการทดสอบแล้ว
[ ความเห็นที่ 4]
RE : Upload และ Resize รูป (php)
โพสต์เมื่อ: วันจันทร์ 14 พฤษภาคม 2555  00:24 น.
การเรียกใช้อาจเรียกใช้ประมาณนี้

$SAVE_PATH_RESIZE = $_SERVER['DOCUMENT_ROOT']."/photo_resize/"; //พาสที่ต้องการนำไฟล์ไปเก็บไว้

$newfilename2=uploadResizeTo($_FILES["fileupload"], $SAVE_PATH_RESIZE, "$id_edit", 128, 96);



คุณต้องสมัครสมาชิก ถึงจะโพสกระทู้ได้

ปิดรับสมัครสมาชิกแล้ว


คำยอดฮิต :- 0