如何用PHP和jQuery實作多個檔案上傳?

Linda Hamilton
發布: 2024-10-26 19:34:03
原創
1063 人瀏覽過

How to Implement Multiple File Uploads in PHP and jQuery?

在PHP 和jQuery 中處理多個文件上傳

在Web 開發領域,圖像庫、文件等任務通常需要上傳多個文件的能力管理系統等。本教學將引導您完成使用 PHP 和 jQuery 啟用多個檔案上傳的過程。

HTML 和表單設定

HTML 表單用作選擇要上傳的檔案的介面。在這裡,我們有一個類型為「file」的輸入字段,其中設定了「multiple」屬性以允許選擇多個檔案:

<input id="myfile" type="file" name="myfile" multiple=multiple/>
登入後複製

點擊「上傳」按鈕時,sendfile() 函數為透過onclick 事件處理程序觸發。

jQuery 和 FormData

sendfile() 函式利用 jQuery 建構 FormData 物件。該物件允許包含表單資料(包括檔案)傳送到伺服器端腳本。每個選定的檔案都會附加到FormData 物件:

for (var i = 0, len = document.getElementById('myfile').files.length; i < len; i++) {
    fd.append("myfile", document.getElementById('myfile').files[i]);                
}
登入後複製

伺服器端PHP 腳本

在伺服器端,uploadfile.php 腳本處理檔案上傳:

<code class="php">$target = "uploadfolder/";
// for($i=0; $i <count($_FILES['myfile']['name']); $i++){
    if(move_uploaded_file($_FILES['myfile']['tmp_name'], $target.$_FILES['myfile']['name'])) { 
        echo 'Successfully copied'; 

    }else{       
        echo 'Sorry, could not copy';
    }   
// } 
登入後複製

但是,此程式碼不完整,因為它缺少迭代多個檔案的循環。您需要實現所提供的正確答案中所示的循環。

範例更新(基於答案)

在答案中提供的範例中,jQuery 程式碼和 HTML 結構是類似於上面不完整的程式碼。主要差異在於 load.php 腳本:

已實作循環來處理多個檔案。

<code class="php">foreach ($_FILES as $key) {
    if($key['error'] == UPLOAD_ERR_OK ){
        $name = $key['name'];
        $temp = $key['tmp_name'];
        $size= ($key['size'] / 1000)."Kb";
        move_uploaded_file($temp, $path . $name);
        echo "
            <div>
                <h1>File Name: $name</h1><br />
                <h1>Size: $size</h1><br />
                <hr>
            </div>
            ";
    }else{
        echo $key['error'];
    }
}
登入後複製

以上是如何用PHP和jQuery實作多個檔案上傳?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板