Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> PHP

จะอัพโหลดหลายไฟล์และเก็บไว้ในโฟลเดอร์ด้วย PHP ได้อย่างไร?


ด้านล่างนี้เป็นขั้นตอนในการอัปโหลดหลายไฟล์และจัดเก็บไว้ในโฟลเดอร์ -

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