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