formdata多文件上傳詳解

一、formdata多文件上傳有介面

使用formdata進行文件上傳,需要後端有對應的介面能夠接收文件,一般常用的後端語言如PHP、Java、Nodejs都有相關的支持。在前端需要知道後端介面的地址,以及介面向前端返回的需要處理的數據格式。

二、formdata文件上傳json

formdata上傳的數據,可以使用json格式的數據進行傳輸,而且在後端處理也比較簡單。下面是一個使用json格式上傳文件的示例代碼:

let formData = new FormData();
formData.append("file", file);
formData.append("data", JSON.stringify(data));

三、formdata文件上傳

使用formdata進行文件上傳,需要將選擇上傳的文件添加到formdata中,可以使用input標籤的文件選擇器進行文件選擇,也可以通過JS的方式把文件添加到formdata中。下面是一段JS代碼,通過input選擇器添加文件到formdata中:

let input = document.createElement("input");
input.type = "file";
input.onchange = function() {
    let file = input.files[0];
    let formData = new FormData();
    formData.append("file", file);
}

四、formdata文件後台接受

後端需要使用合適的方式來接受前端上傳的formdata數據,一般使用常用的後端語言,如PHP、Java、Nodejs都有相應的方法。下面是一個使用PHP接收formdata數據的示例代碼:

$file = $_FILES["file"];
$data = $_POST["data"];

五、formdata文件上傳最大限制

使用formdata進行文件上傳時,需要注意上傳文件的最大限制,根據不同的後端語言,需要做相應的配置,否則會出現文件上傳失敗或上傳的文件被截斷。下面是一個PHP設置上傳文件大小的示例代碼:

ini_set("upload_max_filesize", "20M");

六、formdata上傳圖片的原理

在使用formdata上傳圖片時,原理是把圖片文件轉成二進位格式的數據,然後把二進位數據存儲在formdata中上傳到伺服器,服務端再通過相應的方式將這些二進位數據還原為圖片文件。

七、前端formdata文件上傳

前端使用formdata進行文件上傳一般有兩種方式,一種是通過input標籤的文件選擇器添加文件到formdata中,另一種是通過JS的方式通過文件流的方式把文件添加到formdata中。下面是一個使用JS文件流方式上傳文件的示例代碼:

let file = new File(["hello world"], "hello.txt", {type: "text/plain"});
let formData = new FormData();
formData.append("file", file);

八、formdata上傳多個文件

formdata也支持上傳多個文件,只需要在添加文件到formdata的時候,把文件添加到formdata的相應的key中。下面是一個上傳多個文件的示例代碼:

let input = document.createElement("input");
input.type = "file";
input.multiple = true;
input.onchange = function() {
    let files = input.files;
    let formData = new FormData();
    for(let i=0; i<files.length; i++) {
        formData.append("file"+i, files[i]);
    }
}

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/152633.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-13 06:05
下一篇 2024-11-13 06:05

相關推薦

  • 使用 DRF 實現文件上傳

    文件上傳是 web 應用程序中最常見的需求之一,本文將介紹如何使用 Django Rest Framework (DRF) 來實現文件上傳。通過本文,你將學習到如何使用 DRF 中…

    編程 2025-04-28
  • 神經網路代碼詳解

    神經網路作為一種人工智慧技術,被廣泛應用於語音識別、圖像識別、自然語言處理等領域。而神經網路的模型編寫,離不開代碼。本文將從多個方面詳細闡述神經網路模型編寫的代碼技術。 一、神經網…

    編程 2025-04-25
  • Linux sync詳解

    一、sync概述 sync是Linux中一個非常重要的命令,它可以將文件系統緩存中的內容,強制寫入磁碟中。在執行sync之前,所有的文件系統更新將不會立即寫入磁碟,而是先緩存在內存…

    編程 2025-04-25
  • MPU6050工作原理詳解

    一、什麼是MPU6050 MPU6050是一種六軸慣性感測器,能夠同時測量加速度和角速度。它由三個感測器組成:一個三軸加速度計和一個三軸陀螺儀。這個組合提供了非常精細的姿態解算,其…

    編程 2025-04-25
  • nginx與apache應用開發詳解

    一、概述 nginx和apache都是常見的web伺服器。nginx是一個高性能的反向代理web伺服器,將負載均衡和緩存集成在了一起,可以動靜分離。apache是一個可擴展的web…

    編程 2025-04-25
  • Linux修改文件名命令詳解

    在Linux系統中,修改文件名是一個很常見的操作。Linux提供了多種方式來修改文件名,這篇文章將介紹Linux修改文件名的詳細操作。 一、mv命令 mv命令是Linux下的常用命…

    編程 2025-04-25
  • Python輸入輸出詳解

    一、文件讀寫 Python中文件的讀寫操作是必不可少的基本技能之一。讀寫文件分別使用open()函數中的’r’和’w’參數,讀取文件…

    編程 2025-04-25
  • git config user.name的詳解

    一、為什麼要使用git config user.name? git是一個非常流行的分散式版本控制系統,很多程序員都會用到它。在使用git commit提交代碼時,需要記錄commi…

    編程 2025-04-25
  • 詳解eclipse設置

    一、安裝與基礎設置 1、下載eclipse並進行安裝。 2、打開eclipse,選擇對應的工作空間路徑。 File -> Switch Workspace -> [選擇…

    編程 2025-04-25
  • Python安裝OS庫詳解

    一、OS簡介 OS庫是Python標準庫的一部分,它提供了跨平台的操作系統功能,使得Python可以進行文件操作、進程管理、環境變數讀取等系統級操作。 OS庫中包含了大量的文件和目…

    編程 2025-04-25

發表回復

登錄後才能評論