|
ขออธิบายแบบเท็กส์ นะครับ อาจจะดูยืดยาว และยุ่งยากไปสักหน่อย
แต่ถ้าอ่านจนจบ รับรองได้ว่า ทำตามได้แน่นอน....
1.ก่อนอื่นเราก็สร้างฟอร์มขึ้นมาเพื่อส่งค่าครับ (เอาแบบง่าย ๆ เลยละกัน)
<form name="frm1" action="artist.php?action=add" method="post" onSubmit="return Check_txt()" enctype='multipart/form-data'>
<input name='artist_picture' id="artist_picture" type='file'>
<input type='submit' name='Submit' value=' บันทึก '>
</form>
2.ส่วนของการตรวจสอบประเภทของไฟล์และค่าที่ถูกส่งมา เช่น ให้ส่งได้เฉพาะไฟล์ภาพ นาสกุล .gif, .jpg เป็นต้น
หากเลือกส่งมาผิดประเภท เราก็สามารถตรวจสอบและแจ้งกลับไปได้เลย
<script language="JavaScript">
function Check_txt(){
//*******************************
if(document.getElementById('artist_picture').value!=""){
var fty=new Array(".gif",".jpg",".jpeg"); // ประเภทไฟล์ที่อนุญาตให้อัพโหลด
var a=document.frm1.artist_picture.value; //กำหนดค่าของไฟล์ใหกับตัวแปร a
var permiss=0; // เงื่อนไขไฟล์อนุญาต
a=a.toLowerCase();
if(a !=""){
for(i=0;i<fty.length;i++){ // วน Loop ตรวจสอบไฟล์ที่อนุญาต
if(a.lastIndexOf(fty[i])>=0){ // เงื่อนไขไฟล์ที่อนุญาต
permiss=1;
break;
}else{
continue;
}
}
if(permiss==0){
alert("อัพโหลดได้เฉพาะไฟล์ gif jpg jpeg");
document.getElementById('artist_picture').value="" ;
return false;
}
}
}
//******************************
</script>
3.หากไฟล์ที่ส่งมาถูกประเภทแล้ว ก็ส่งข้อมูลไปยังหน้าที่เราจะอัพโหลด โดยจะมี code php สำหรับเปลี่ยนขนาดของไฟล์ภาพ
ให้ไม่ใหญ่มาก เพื่อที่จะได้ไม่หนักเครื่องเซอร์เวอร์
if($action=="add"){
//*****************************************
if ($artist_picture!= '') {
$path='adminweb/picture_upload/';
$file=$_FILES['artist_picture']['name'];
$file_type=substr($file,strlen($file)-4,strlen($file));
$pic_name='artist_picture_'.$artist_id.strtoupper($file_type);
$artist_picture=$pic_name;
// เริ่มกระบวนการรีไซต์ รูปภาพ
copy ($_FILES['artist_picture']['tmp_name'],$path.$pic_name); //ทำการ copy รูป
$images = $path.$pic_name;
$height = 255; //กำหนดขนาดความสูง
$size = getimagesize($images);
$width = round($height*$size[0]/$size[1]); //ขนาดความกว้่างคำนวนเพื่อความสมส่วนของรูป
if($size[2] == 1) {
$images_orig = imagecreatefromgif($images); //resize รูปประเภท GIF
} else if($size[2] == 2) {
$images_orig = imagecreatefromjpeg($images); //resize รูปประเภท JPEG
}
$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);
imagejpeg($images_fin, $images); //ชื่อไฟล์ใหม่
imagedestroy($images_orig);
imagedestroy($images_fin);
}
//*****************************************
}
หลัีก ๆ ก็จะมี 3 ส่วนนี้ครับ โดยในการใช้งานจริงจะเรียง 3 2 และ 1 ตามลำดับ
เพียงแค่นี้เราก็จะสามารถอัพโหลดไฟล์ได้ตามที่ต้องการ และยังลดขนาดไฟล์ภาพได้ด้วย
ส่วนถ้าเป็นการอัพโหลดไฟล์เพลง หรือไฟล์ประเภทอื่น ๆ ก็ใช้โค้ดประมาณนี้เหมือนกันครับ
เพียงแต่ต้องเปลี่ยนนามสกุลตามที่เราต้องการ
อาจจะยังไม่เห็นภาพ และอาจจะดูยุ่งยากไปสักหน่อย
แต่ก็อยากให้ลองดูครับ ที่ไม่ได้ทำเป็นไฟล์สำเร็จรูปไว้ให้ ก็เเพราะอยากให้ได้ทดลองทำ
จะได้รู้ด้วยตัวเอง และเข้าใจได้ลึกซึ้งกว่า นั่นเอง............
หากมีข้อสงสัยก็สอบถามกันเข้ามาได้นะครับ ยินดีตอบและช่วยเหลือเต็มที่ครับผ๋ม
|