ตัวอย่างต่อไปนี้ เป็นแนวทางสำหรับนำไปใช้ในการ ให้สามารถอัพโหลดไฟล์ ได้หลายๆ ไฟล์พร้อมกัน
ในที่นี่ ใช้กับการอัพโหลดรูปภาพ โดยจะมีฟังก์ชั่น ในการอัพโหลด มาในตัวอย่างด้วย
หลักการคือ เมื่อเราเลือกไฟล์ หนึ่งแล้ว เราจะสามารถเลือกไฟล์ที่ต้องการอัพโหลด เพิ่มขึ้นมาเรื่อยๆ
รวมทั้งยังสามารถยกเลิก หรือลบไฟล์ที่ได้ทำการเลือกไปแล้วออก ก่อนทำการอัพโหลด
โค้ดตัวอย่างเฉพาะในส่วนของ 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:: </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:: </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>
ตัวอย่าง
โค้ดตัวอย่างทั้งหมด
<!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:: </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:: </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>