ลูกเล่น เพิ่มช่องรับ input type file อัตโนมัติ ด้วย jQuery

เขียนเมื่อ 13 ปีก่อน โดย Ninenik Narkdee
input type file jquery

คำสั่ง การ กำหนด รูปแบบ ตัวอย่าง เทคนิค ลูกเล่น การประยุกต์ การใช้งาน เกี่ยวกับ input type file jquery

ดูแล้ว 24,078 ครั้ง


 ตัวอย่างต่อไปนี้ เป็นแนวทางสำหรับนำไปใช้ในการ ให้สามารถอัพโหลดไฟล์ ได้หลายๆ ไฟล์พร้อมกัน

ในที่นี่ ใช้กับการอัพโหลดรูปภาพ โดยจะมีฟังก์ชั่น ในการอัพโหลด มาในตัวอย่างด้วย
หลักการคือ เมื่อเราเลือกไฟล์ หนึ่งแล้ว เราจะสามารถเลือกไฟล์ที่ต้องการอัพโหลด เพิ่มขึ้นมาเรื่อยๆ
รวมทั้งยังสามารถยกเลิก หรือลบไฟล์ที่ได้ทำการเลือกไปแล้วออก ก่อนทำการอัพโหลด
 
โค้ดตัวอย่างเฉพาะในส่วนของ jQuery 
 
<div style="margin:auto;width:800px;">
<form action="" method="post" enctype="multipart/form-data" name="form1" id="form1">
  <table width="500" border="0" cellspacing="2" cellpadding="0">
    <tr class="css_row_upload">
      <td width="150" align="right" bgcolor="#ECECEC">Picture:: &nbsp;</td>
      <td bgcolor="#ECECEC">
      <input type="file" name="pic_upload[]" class="css_pic_upload" id="pic_upload[]" 
      onpropertychange="if(window.event.propertyName=='value'){$(this).blur();};" />
        
        </td>
    </tr>
  </table>
  <br />
<br />
    <input type="submit" name="upPic" id="upPic" value="UPLOAD NOW" />

</form>

<hr />

</div>


<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
<script type="text/javascript">
$(function(){
	
	var empty_upload='\
    <tr class="css_row_upload">\
      <td width="150" align="right" bgcolor="#ECECEC">Picture:: &nbsp;</td>\
      <td bgcolor="#ECECEC">\
      <input type="file" name="pic_upload[]" class="css_pic_upload"\
	  id="pic_upload[]" onpropertychange="if(window.event.propertyName==\'value\'){$(this).blur();};" />\
        <a href="#" class="css_remove_fileupload">Remove</a>\
        </td>\
    </tr>\
	';


	$(".css_pic_upload").live("change onpropertychange",function(){
		var file_value=$(this).val();
		console.log(file_value);
		if(file_value!=""){		
			$(this).parents("tr.css_row_upload").after(empty_upload);
		}
	});

	$(".css_remove_fileupload").live("click",function(e){
		e.preventDefault();
		$(this).parents("tr.css_row_upload").remove();		
	});	
});

</script>
ตัวอย่าง
 
Picture::  



 
โค้ดตัวอย่างทั้งหมด
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>



</head>

<body>


<br />
<br />
<br />

<div style="margin:auto;width:800px;">
<form action="" method="post" enctype="multipart/form-data" name="form1" id="form1">
  <table width="500" border="0" cellspacing="2" cellpadding="0">
    <tr class="css_row_upload">
      <td width="150" align="right" bgcolor="#ECECEC">Picture:: &nbsp;</td>
      <td bgcolor="#ECECEC">
      <input type="file" name="pic_upload[]" class="css_pic_upload" id="pic_upload[]" 
      onpropertychange="if(window.event.propertyName=='value'){$(this).blur();};" />
        
        </td>
    </tr>
  </table>
  <br />
<br />
    <input type="submit" name="upPic" id="upPic" value="UPLOAD NOW" />

</form>

<hr />

</div>

<?php

function multiupload($img,$imglocate,$key){
	$allowed_types=array('jpg','jpeg','gif','png','swf');   
	if($img['name'][$key]!=''){
		$fileupload1=$img['tmp_name'][$key];
		$g_img=explode(".",$img['name'][$key]);
		$ext = strtolower(array_pop($g_img));  
		$file_up=time()."-".$key.".".$ext;
		echo $file_up;
		if($fileupload1!="" && in_array($ext,$allowed_types)){
				copy($fileupload1,$imglocate.$file_up);	
				chmod($imglocate.$file_up,0777);				
		}				
	}
	return $file_up; // ส่งกลับชื่อไฟล์
}

if(isset($_POST['upPic'])){
	$multiupload_pic=$_FILES['pic_upload'];
	$arr_multiupload_pic=$multiupload_pic['name'];
	if(count($arr_multiupload_pic)>0){
		foreach($arr_multiupload_pic as $key=>$value){
			$file_to_up=multiupload($multiupload_pic,"tmp_pic/",$key);
			if($file_to_up!=""){
				echo "$file_to_up<br>";
				//  นำตัวแปรชื่อไฟล์ไปบันทึกลงฐานข้อมูล หรืออื่นๆ
				
			}
		}		
	}
	
}

?>


<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
<script type="text/javascript">
$(function(){
	
	var empty_upload='\
    <tr class="css_row_upload">\
      <td width="150" align="right" bgcolor="#ECECEC">Picture:: &nbsp;</td>\
      <td bgcolor="#ECECEC">\
      <input type="file" name="pic_upload[]" class="css_pic_upload"\
	  id="pic_upload[]" onpropertychange="if(window.event.propertyName==\'value\'){$(this).blur();};" />\
        <a href="#" class="css_remove_fileupload">Remove</a>\
        </td>\
    </tr>\
	';


	$(".css_pic_upload").live("change onpropertychange",function(){
		var file_value=$(this).val();
		console.log(file_value);
		if(file_value!=""){		
			$(this).parents("tr.css_row_upload").after(empty_upload);
		}
	});

	$(".css_remove_fileupload").live("click",function(e){
		e.preventDefault();
		$(this).parents("tr.css_row_upload").remove();		
	});	
});

</script>

</body>
</html>
 


กด Like หรือ Share เป็นกำลังใจ ให้มีบทความใหม่ๆ เรื่อยๆ น่ะครับ











URL สำหรับอ้างอิง





คำแนะนำ และการใช้งาน

สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
  • เปลี่ยน


    ( หรือ เข้าใช้งานผ่าน Social Login )







เว็บไซต์ของเราให้บริการเนื้อหาบทความสำหรับนักพัฒนา โดยพึ่งพารายได้เล็กน้อยจากการแสดงโฆษณา โปรดสนับสนุนเว็บไซต์ของเราด้วยการปิดการใช้งานตัวปิดกั้นโฆษณา (Disable Ads Blocker) ขอบคุณครับ