|
|
|
การอัพโหลดรูปภาพ กำหนดประเภทไฟล์ที่ต้องการอัพโหลดไม่ได้ค่ะ |
|
|
|
|
|
|
|
ต้องการอัพโหลดแค่ .jpg .png .gif เท่านั้น แต่พอลองอัพไฟล์ .tif ยังสามารถอัพได้อยู่เลยค่ะ ต้องป้องกันยังไงคะ
Code (PHP)
$Folderpic = "BoardUploadPic" ; //ชื่อโฟลเดอร์ที่ไว้ใช้เก็บไฟล์
if($_FILES["picupload"]["tmp_name"]){
$picupload=$_FILES["picupload"]["tmp_name"]; // ตัวแปร temp
$picupload_name=$_FILES["picupload"]["name"]; // ตัวแปรชื่อไฟล์
if (isset($_FILES[picupload][name])) { // ถ้ามีการเซทชื่อไฟล์มาให้ประมวลผลส่วนนี้
//*** ส่วนนี้คือการ Rename รูปให้เป็นวันที่ที่บันทึก ***//
$ext = strtolower(end(explode('.', $picupload_name)));
$dateUpFile=date("YmdHis");
$newname=$dateUpFile.".".$ext; //ชื่อไฟล์ที่กำหนดขึ้นมาใหม่ โดยใช้วันและเวลาเป็นตัวกำหนดตั้งชื่อ
//*** สร้างภาพขึ้นมาใหม่ตามนามสกุลของไฟล์เดิม ***//
$images = $picupload;
$width=600; //ขนาดความกว้างที่ต้องการ Resize
$size = getimagesize($images);
if($size[0] <= 600) {
copy($picupload, "$Folderpic/".$newname);
// ค่อย resize
} else if ($size[0] >= 600) {
$height=round($width*$size[1]/$size[0]); // ขนาดความสูงที่ต้องการ Resize
$img_type=strtolower(end(explode('.',$images)));
if($size[2] == 1) {
$images_orig = imagecreatefromgif($images); // GIF
} else if($size[2] == 2) {
$images_orig = imagecreatefromjpeg($images); // JPEG
}
else if($size[2] == 3) {
$images_orig = imagecreatefrompng($images); // png
}
//*** ส่วนนี้คือการ Resize รูป ***//
$photoX = imagesx($images_orig);
$photoY = imagesy($images_orig);
$images_fin = imagecreatetruecolor($width, $height);
imagecopyresampled($images_fin, $images_orig, 0, 0, 0, 0, $width+1, $height+1, $photoX, $photoY); // ทำการ Resize ภาพ
imageJPEG($images_fin,"$Folderpic/".$newname);
imagedestroy($images_orig);
imagedestroy($images_fin);
}
}
}
Tag : PHP, MySQL
|
ประวัติการแก้ไข 2011-11-14 22:36:58 2011-11-15 13:10:13
|
|
|
|
|
Date :
2011-11-14 22:34:48 |
By :
AnnYZaa |
View :
1046 |
Reply :
6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
หลักการทำงานมันคือ เช็คขนาดความกว้างของไฟล์ก่อนresize ถ้าความกว้างต่ำกว่ากำหนดก็อัพโหลดไฟล์ต้นฉบับเลย
|
|
|
|
|
Date :
2011-11-14 23:35:35 |
By :
soisiam |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
$size = getimagesize($images);
if($size[0] >= 500)
{
// ค่อย resize
}
|
|
|
|
|
Date :
2011-11-15 06:07:05 |
By :
webmaster |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณค่ะ resize ได้แล้ว แต่มันไม่เช็คประเภทไฟล์ให้ค่ะ ยังสามารถอัพไฟล์ .tif ได้อยู่เลยค่ะ
|
|
|
|
|
Date :
2011-11-15 10:58:53 |
By :
AnnYZaa |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|