ด้านล่างนี้เป็นขั้นตอนในการอัปโหลดหลายไฟล์และจัดเก็บไว้ในโฟลเดอร์ -
- ชื่ออินพุตต้องกำหนดเป็นอาร์เรย์ เช่น name="inputName[]"
- องค์ประกอบอินพุตควรมี multiple="multiple" หรือหลายรายการ
- ในไฟล์ PHP ให้ใช้ไวยากรณ์ "$_FILES['inputName']['param'][index]"
- ต้องตรวจสอบชื่อไฟล์และเส้นทางที่ว่างเปล่า เนื่องจากอาร์เรย์อาจมีสตริงว่าง ในการแก้ไขปัญหานี้ ให้ใช้ array_filter() ก่อนการนับ
ด้านล่างนี้เป็นการสาธิตโค้ด -
HTML
<input name="upload[]" type="file" multiple="multiple" />
PHP
$files = array_filter($_FILES['upload']['name']); //Use something similar before processing files.
// Count the number of uploaded files in array
$total_count = count($_FILES['upload']['name']);
// Loop through every file
for( $i=0 ; $i < $total_count ; $i++ ) {
//The temp file path is obtained
$tmpFilePath = $_FILES['upload']['tmp_name'][$i];
//A file path needs to be present
if ($tmpFilePath != ""){
//Setup our new file path
$newFilePath = "./uploadFiles/" . $_FILES['upload']['name'][$i];
//File is uploaded to temp dir
if(move_uploaded_file($tmpFilePath, $newFilePath)) {
//Other code goes here
}
}
} ไฟล์ต่างๆ อยู่ในรายการและจำนวนไฟล์ที่ต้องอัปโหลดจะถูกเก็บไว้ในตัวแปร 'total_count' มีการสร้างเส้นทางไฟล์ชั่วคราวและทุกไฟล์จะถูกใส่ซ้ำในเส้นทางชั่วคราวที่มีโฟลเดอร์