」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何使用 HTTP POST 透過 HTML 和 PHP 選擇並上傳多個文件

如何使用 HTTP POST 透過 HTML 和 PHP 選擇並上傳多個文件

發佈於2024-08-29
瀏覽:628

How to Select and Upload Multiple files with HTML and PHP, using HTTP POST

HTML 和 PHP 通常一起使用來建立動態 Web 應用程式。當涉及從 HTML 表單向 PHP 腳本提交資料時,標準方法是使用 HTTP POST 方法。

HTML(超文本標記語言)

HTML 是用來建立網頁內容的標準標記語言。它提供了一組定義網頁上元素的結構和表示的標籤。 HTML 主要負責創建 Web 應用程式的使用者介面。它定義了表單、輸入欄位、按鈕等元素。

PHP(超文本預處理器)

PHP 是一種專為 Web 開發而設計的伺服器端腳本語言。它允許您透過在 HTML 中嵌入 PHP 程式碼來建立動態網頁。 PHP 在伺服器端執行,產生 HTML 內容,然後傳送到客戶端的瀏覽器。它為資料處理、資料庫連接、檔案處理等提供了強大的功能。 PHP 通常用於處理表單提交、處理資料以及與資料庫互動。

HTTP POST(超文本傳輸協定 - POST)

HTTP POST 是用於從客戶端(瀏覽器)向伺服器發送資料的方法之一。當使用 POST 方法提交 HTML 表單時,表單資料會作為 HTTP 請求正文的一部分傳送。這適合發送敏感或大量數據,因為數據不像 GET 方法那樣附加到 URL。伺服器端腳本(例如,用 PHP 編寫)接收 POST 資料並可以根據提交的值執行操作。

協同工作時,HTML 表單用於收集使用者輸入,PHP 腳本處理和處理提交的表單數據,HTTP POST 有助於將該資料從客戶端傳輸到伺服器。

要使用 HTTP POST 選擇並上傳包含 HTML 和 PHP 的多個文件,您可以按照以下步驟操作:

HTML 表單

建立一個 HTML 表單,讓使用者選擇多個檔案進行上傳。使用具有 multiple 屬性的 元素可以啟用多個檔案選擇。將表單的 enctype 屬性設為「multipart/form-data」以處理檔案上傳。

PHP 檔案 (upload.php)

建立一個 PHP 檔案(例如 upload.php)來處理檔案上傳過程。在此文件中,您將使用 $_FILES 超全局存取上傳的檔案。

 $name) {
         $fileSize = $fileSizes[$key];
         $fileTmp = $fileTmps[$key];
         $fileType = $fileTypes[$key];
         // Validate and process each uploaded file
         // Add your validation logic here
      // Generate a unique filename to avoid conflicts
         $fileName = uniqid() . '_' . $name;
         // Move the uploaded file to the specified directory
         $destination = $uploadPath . $fileName;
         if (move_uploaded_file($fileTmp, $destination)) {
            $uploadedFiles[] = $destination;
         } else {
            $errors[] = "Failed to upload {$name}";
         }
      }
      if (!empty($errors)) {
         // Handle errors encountered during the upload process
         foreach ($errors as $error) {
            echo $error . "
"; } } if (!empty($uploadedFiles)) { // File upload succeeded // Perform further operations or display success message foreach ($uploadedFiles as $file) { echo "File uploaded: " . $file . "
"; } } } ?>

在upload.php檔中:

使用$_FILES['files']存取上傳的文件,其中'files'對應於文件輸入的名稱屬性。

使用循環遍歷每個上傳的檔案。

根據需要驗證並處理每個文件。根據文件類型、大小等添加您自己的驗證邏輯。

產生唯一的檔案名稱以避免衝突。在此範例中,uniqid() 用於產生唯一識別碼。

使用 move_uploaded_file() 將每個上傳的檔案移到所需的目錄。指定每個檔案的目標路徑。

處理上傳過程中遇到的任何錯誤並顯示它們。

如果上傳成功,可以進行進一步的操作或顯示成功訊息。

上傳目錄

在PHP檔案同級目錄下建立一個目錄(如uploads/),用來存放上傳的檔案。確保目錄具有適當的寫入權限,以便 PHP 可以將上傳的檔案移至該位置。

bash

- 專案/

- upload.php

- 上傳/

請記住驗證和清理上傳的文件,以確保您的應用程式的安全。您可以執行其他檢查,例如文件類型驗證、大小限制以及特定於您的用例的任何其他要求。

注意:提供的程式碼是說明文件上傳過程的基本範例。始終建議實施額外的安全措施並根據您的特定需求自訂程式碼。

結論

依照上述步驟,您可以建立一個允許選擇多個檔案的 HTML 表單。提交表單後,PHP 腳本透過 $_FILES 接收文件,處理它們,並將它們移至所需位置。

請記住處理潛在的錯誤,例如檔案大小限製或檔案類型限制,並實施適當的驗證和安全措施以防止惡意上傳。

透過這些步驟,您可以讓使用者透過 HTTP POST 使用 HTML 和 PHP 選擇和上傳多個檔案。

版本聲明 本文轉載於:https://www.tutorialspoint.com/how-to-select-and-upload-multiple-files-with-html-and-php-using-http-post如有侵犯,請聯絡study_golang@163 .com刪除
最新教學 更多>
  • 從零到 Web 開發人員:掌握 PHP 基礎知識
    從零到 Web 開發人員:掌握 PHP 基礎知識
    掌握PHP基礎至關重要:安裝PHP建立PHP檔案運行程式碼理解變數和資料類型使用表達式和運算子建立實際專案以提高技能 PHP開發入門:掌握PHP基礎PHP是一種用途廣泛、功能強大的腳本語言,用於創建動態且互動式Web應用程式。對於初學者來說,掌握PHP的基本知識至關重要。 一、安裝PHP在本地開發機...
    程式設計 發佈於2024-11-05
  • 緩衝區:Node.js
    緩衝區:Node.js
    Node.js 中緩衝區的簡單指南 Node.js 中的 Buffer 用於處理原始二進位數據,這在處理流、文件或網路數據時非常有用。 如何建立緩衝區 來自字串: const buf = Buffer.from('Hello'); 分配特定大小的Buffer...
    程式設計 發佈於2024-11-05
  • 掌握 Node.js 中的版本管理
    掌握 Node.js 中的版本管理
    作為開發者,我們經常遇到需要不同 Node.js 版本的專案。對於可能不經常參與 Node.js 專案的新手和經驗豐富的開發人員來說,這種情況都是一個陷阱:確保每個專案使用正確的 Node.js 版本。 在安裝依賴項並執行專案之前,驗證您的 Node.js 版本是否符合或至少相容專案的要求至關重要...
    程式設計 發佈於2024-11-05
  • 如何在 Go 二進位檔案中嵌入 Git 修訂資訊以進行故障排除?
    如何在 Go 二進位檔案中嵌入 Git 修訂資訊以進行故障排除?
    確定Go 二進位檔案中的Git 修訂版部署程式碼時,將二進位檔案與建置它們的git 修訂版關聯起來會很有幫助排除故障的目的。然而,直接使用修訂號更新原始程式碼是不可行的,因為它會改變原始程式碼。 解決方案:利用建造標誌解決此挑戰的方法包括利用建造標誌。透過使用建置標誌在主套件中設定當前 git 修訂...
    程式設計 發佈於2024-11-05
  • 常見 HTML 標籤:視角
    常見 HTML 標籤:視角
    HTML(超文本標記語言)構成了 Web 開發的基礎,是互聯網上每個網頁的結構。透過了解最常見的 HTML 標籤及其高級用途,到 2024 年,開發人員可以創建更有效率、更易於存取且更具視覺吸引力的網頁。在這篇文章中,我們將探討這些 HTML 標籤及其最高級的用例,以協助您提升 Web 開發技能。 ...
    程式設計 發佈於2024-11-05
  • CSS 媒體查詢
    CSS 媒體查詢
    確保網站在各種裝置上無縫運作比以往任何時候都更加重要。隨著用戶透過桌上型電腦、筆記型電腦、平板電腦和智慧型手機造訪網站,響應式設計已成為必要。響應式設計的核心在於媒體查詢,這是一項強大的 CSS 功能,可讓開發人員根據使用者裝置的特徵應用不同的樣式。在本文中,我們將探討什麼是媒體查詢、它們如何運作以...
    程式設計 發佈於2024-11-05
  • 了解 JavaScript 中的提升:綜合指南
    了解 JavaScript 中的提升:綜合指南
    JavaScript 中的提升 提升是一種行為,其中變數和函數聲明在先前被移動(或「提升」)到其包含範圍(全域範圍或函數範圍)的頂部程式碼被執行。這意味著您可以在程式碼中實際聲明變數和函數之前使用它們。 變數提升 變數 用 var 宣告的變數被提升...
    程式設計 發佈於2024-11-05
  • 將 Stripe 整合到單一產品 Django Python 商店中
    將 Stripe 整合到單一產品 Django Python 商店中
    In the first part of this series, we created a Django online shop with htmx. In this second part, we'll handle orders using Stripe. What We'll...
    程式設計 發佈於2024-11-05
  • 在 Laravel 測試排隊作業的技巧
    在 Laravel 測試排隊作業的技巧
    使用 Laravel 應用程式時,經常會遇到命令需要執行昂貴任務的情況。為了避免阻塞主進程,您可能決定將任務卸載到可以由佇列處理的作業。 讓我們來看一個例子。想像一下指令 app:import-users 需要讀取一個大的 CSV 檔案並為每個條目建立一個使用者。該命令可能如下所示: /* Imp...
    程式設計 發佈於2024-11-05
  • 如何創建人類層級的自然語言理解 (NLU) 系統
    如何創建人類層級的自然語言理解 (NLU) 系統
    Scope: Creating an NLU system that fully understands and processes human languages in a wide range of contexts, from conversations to literature. ...
    程式設計 發佈於2024-11-05
  • 如何使用 JSTL 迭代 HashMap 中的 ArrayList?
    如何使用 JSTL 迭代 HashMap 中的 ArrayList?
    使用JSTL 迭代HashMap 中的ArrayList在Web 開發中,JSTL(JavaServer Pages 標準標記庫)提供了一組標記來簡化JSP 中的常見任務( Java 伺服器頁面)。其中一項任務是迭代資料結構。 要迭代 HashMap 及其中包含的 ArrayList,可以使用 JS...
    程式設計 發佈於2024-11-05
  • Encore.ts — 比 ElysiaJS 和 Hono 更快
    Encore.ts — 比 ElysiaJS 和 Hono 更快
    几个月前,我们发布了 Encore.ts — TypeScript 的开源后端框架。 由于已经有很多框架,我们想分享我们做出的一些不常见的设计决策以及它们如何带来卓越的性能数据。 性能基准 我们之前发布的基准测试显示 Encore.ts 比 Express 快 9 倍,比 Fasti...
    程式設計 發佈於2024-11-05
  • 為什麼使用 + 對字串文字進行字串連接失敗?
    為什麼使用 + 對字串文字進行字串連接失敗?
    連接字串文字與字串在 C 中,運算子可用於連接字串和字串文字。但是,此功能存在限制,可能會導致混亂。 在問題中,作者嘗試連接字串文字「Hello」、「,world」和「!」以兩種不同的方式。第一個例子:const string hello = "Hello"; const str...
    程式設計 發佈於2024-11-05
  • React 重新渲染:最佳效能的最佳實踐
    React 重新渲染:最佳效能的最佳實踐
    React高效率的渲染機制是其受歡迎的關鍵原因之一。然而,隨著應用程式複雜性的增加,管理元件重新渲染對於最佳化效能變得至關重要。讓我們探索優化 React 渲染行為並避免不必要的重新渲染的最佳實踐。 1. 使用 React.memo() 作為函數式元件 React.memo() 是...
    程式設計 發佈於2024-11-05
  • 如何實作條件列建立:探索 Pandas DataFrame 中的 If-Elif-Else?
    如何實作條件列建立:探索 Pandas DataFrame 中的 If-Elif-Else?
    Creating a Conditional Column: If-Elif-Else in Pandas給定的問題要求將新列新增至DataFrame 中基於一系列條件標準。挑戰在於在實現這些條件的同時保持程式碼效率和可讀性。 使用函數應用程式的解決方案一種方法涉及創建一個將每一行映射到所需結果的函...
    程式設計 發佈於2024-11-05

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3