:::
11-1 多檔上傳
- 假設 file 欄位名稱為
files,多檔上傳的name屬性必須加上[]及multiple屬性,如:<input type="file" name="files[]" id="files" class="form-control" placeholder="請上傳相片或影片" accept=".jpg,.jpeg,.png,.gif,.mp4" multiple /> $_FILES超級全域變數會變成像這樣(三維陣列):$_FILES['files']['name'][0]:第一個檔案原始名稱$_FILES['files']['name'][1]:第二個檔案原始名稱
- 上傳的步驟:利用迴圈,依序讀出每一個檔案,重點在於其索引值,也就是第幾個檔案的意思,所以每個
$_FILES後面都要加上[$i],例如:// 依序讀出檔案 foreach ($_FILES['files']['name'] as $i => $filename) { // 若沒檔案就中斷 if (!$filename) { break; } // 檢查檔案是否上傳成功 if ($_FILES['files']['error'][$i] === UPLOAD_ERR_OK) { // 讓檔案放在文章編號的目錄下,比較方便管理,檢查有無該目錄 if (!is_dir(_PATH . "/uploads/{$id}")) { // 若無建立原檔目錄 mkdir(_PATH . "/uploads/{$id}"); // 順便建立縮圖目錄 mkdir(_PATH . "/uploads/{$id}/thumbs"); } // 暫存檔來源 $file = $_FILES['files']['tmp_name'][$i]; // 欲放置到哪裡 $dest = _PATH . "/uploads/{$id}/{$filename}"; // 將檔案移至指定位置 if (!move_uploaded_file($file, $dest)) { die("無法將檔案{$file}上傳至指定位置{$dest}"); } } else { die("上傳錯誤:{$_FILES['files']['error'][$i]}"); } } - 最後可以試試一次上傳多檔

- 看看資料夾下是否有相關檔案

7-9 加入刪除文章功能