欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

前端通過表單將pdf等文件傳入后端

 更新時間:2024年09月29日 09:09:43   作者:bayeeaa  
在一些情境下,用戶通過瀏覽器上傳word、excel、pdf等各種類型的文件到系統(tǒng),上傳后可以隨時下載,下面這篇文章主要介紹了前端通過表單將pdf等文件傳入后端的相關(guān)資料,需要的朋友可以參考下

我們知道在js中我們可以通過:

<input type="file" name="file" id="fileInput" accept="image/*">

來輸入文件。其中type指后端url,accept來限制傳入類型。

前端通過表單形式將其傳入后端

那么前端是怎么將這一整個文件打包傳入后端的呢?

原來前端通過文件上傳表單的方式將文件傳輸?shù)胶蠖?。這通常涉及使用 HTML 的 <form> 元素和 <input type="file"> 輸入框,以及設(shè)置適當(dāng)?shù)谋韱螌傩詠碇С治募蟼鳌?/p>

Payload截圖

可以看到我在使用ant design vue框架時其文件傳輸?shù)膬?nèi)容包含狀態(tài),上傳時間,文件名字等。

文件上傳的流程:

  • 用戶在文件輸入框中選擇一個文件。
  • 用戶點擊提交按鈕,瀏覽器將會把表單數(shù)據(jù)(包括選定的文件)打包成 multipart/form-data 格式的請求體。
  • 請求被發(fā)送到指定的后端URL(在這個例子中是 /upload)。
  • 后端接收到請求后,可以通過相應(yīng)的框架或庫來解析 multipart/form-data,獲取到文件數(shù)據(jù),并進(jìn)行進(jìn)一步處理,例如保存文件到服務(wù)器或者進(jìn)行文件內(nèi)容分析等操作。

文件上傳表單示例:

<form id="uploadForm" action="/upload" method="POST" enctype="multipart/form-data">
    <input type="file" name="file" id="fileInput">
    <button type="submit">上傳文件</button>
</form>

解釋:

  • <form> 元素定義了一個表單,其中:
    • action="/upload" 指定了表單提交的目標(biāo)后端URL。
    • method="POST" 指定了使用POST方法提交表單。
    • enctype="multipart/form-data" 表示表單中包含文件上傳,這是必需的,因為文件上傳需要使用 multipart/form-data 類型來傳輸文件數(shù)據(jù)。
  • <input type="file" name="file" id="fileInput"> 是文件上傳的輸入框,其中:
    • type="file" 表示這是一個文件輸入框,允許用戶選擇文件。
    • name="file" 指定了后端接收文件時的字段名稱,這個名稱在后端處理文件時很重要。
    • id="fileInput" 可以用來通過 JavaScript 獲取文件輸入框的引用,以便在用戶選擇文件后執(zhí)行一些操作(例如顯示文件名或大?。?/li>
  • <button type="submit">上傳文件</button> 是一個提交按鈕,點擊它會觸發(fā)表單提交操作。

后端處理文件上傳的例子:

  • Node.js(使用 Express 框架):

    const express = require('express');
    const multer = require('multer');
    const upload = multer({ dest: 'uploads/' });
    
    const app = express();
    
    app.post('/upload', upload.single('file'), (req, res) => {
        const file = req.file;
        // 處理文件,例如保存到服務(wù)器或者返回其他響應(yīng)
        res.send('文件上傳成功');
    });
    
    app.listen(3000, () => {
        console.log('服務(wù)器運行在 http://localhost:3000');
    });

    在這個例子中,使用了 multer 中間件來處理單個文件上傳,upload.single('file') 表示期望接收一個名為 file 的文件字段。

  • PHP:

    <?php
    $target_dir = "uploads/";
    $target_file = $target_dir . basename($_FILES["file"]["name"]);
    $uploadOk = 1;
    
    if (move_uploaded_file($_FILES["file"]["tmp_name"], $target_file)) {
        echo "文件上傳成功";
    } else {
        echo "文件上傳失敗";
    }
    ?>

    PHP 示例使用了 $_FILES 超全局?jǐn)?shù)組來接收上傳的文件,并使用 move_uploaded_file() 函數(shù)將文件從臨時位置移動到指定的目標(biāo)位置。

用JS將文件傳入后端

上面以及展示了html文件上傳表單的示例,下面再展示通過JavaScript監(jiān)聽文件選擇事件來傳遞。

html

<div>
    <input type="file" id="File">
    <button>點擊上傳文件</button>
</div>

JS綁定事件

document.querySelector('button').addEventListener('click', e => {
	let fileList = document.querySelector('#File').files
})
let fd = new FormData()
fd.append('aaa',fileList[0])

如果接口文檔要求傳遞請求體(包括Content-Disposition, Content-Type等)我們使用window提供的FormData構(gòu)造函數(shù)來實例化一個表單類型。

axios傳遞

axios({
	url: '',
	method: 'POST',
	data: fd
}).then(res => {
	console.log(res);
})

通過ajax就可以將文件傳入后端。

總結(jié)

到此這篇關(guān)于前端通過表單將pdf等文件傳入后端的文章就介紹到這了,更多相關(guān)前端將pdf等文件傳入后端內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 微信用戶訪問小程序的登錄過程詳解

    微信用戶訪問小程序的登錄過程詳解

    這篇文章主要介紹了微信用戶訪問小程序的登錄過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • JS中字符串trim()使用示例

    JS中字符串trim()使用示例

    本文主要給大家介紹的是javascript中的擴(kuò)展方法字符串trim()的使用指南,十分的簡單實用,有需要的小伙伴可以參考下。
    2015-05-05
  • js實現(xiàn)鍵盤Enter鍵提交表單的方法

    js實現(xiàn)鍵盤Enter鍵提交表單的方法

    這篇文章主要介紹了js實現(xiàn)鍵盤Enter鍵提交表單的方法,涉及javascript鍵盤事件的相關(guān)操作技巧,需要的朋友可以參考下
    2015-05-05
  • 詳細(xì)聊聊瀏覽器是如何看閉包的

    詳細(xì)聊聊瀏覽器是如何看閉包的

    閉包實質(zhì)上是函數(shù)作用域的副產(chǎn)物,下面這篇文章主要給大家介紹了關(guān)于瀏覽器是如何看閉包的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2021-11-11
  • 利用JS判斷鼠標(biāo)移入元素的方向

    利用JS判斷鼠標(biāo)移入元素的方向

    本文對JS判斷鼠標(biāo)移入元素的方向的實現(xiàn)方法進(jìn)行介紹,并分享了完整的示例代碼,有需要的朋友可以看下
    2016-12-12
  • js arguments,jcallee caller用法總結(jié)

    js arguments,jcallee caller用法總結(jié)

    這篇文章主要介紹了js中arguments, jcallee caller用法。需要的朋友可以過來參考下,希望對大家有所幫助
    2013-11-11
  • js將table的每個td的內(nèi)容自動賦值給其title屬性的方法

    js將table的每個td的內(nèi)容自動賦值給其title屬性的方法

    下面小編就為大家?guī)硪黄猨s將table的每個td的內(nèi)容自動賦值給其title屬性的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-10-10
  • ElementUI中Tree組件使用案例講解

    ElementUI中Tree組件使用案例講解

    這篇文章主要介紹了ElementUI中Tree組件使用案例講解,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-12-12
  • JS for循環(huán)中i++ 和 ++i的區(qū)別介紹

    JS for循環(huán)中i++ 和 ++i的區(qū)別介紹

    這篇文章主要介紹了JS for循環(huán)中i++ 和 ++i的區(qū)別介紹的相關(guān)資料,需要的朋友可以參考下
    2016-07-07
  • javascript計時器編寫過程與實現(xiàn)方法

    javascript計時器編寫過程與實現(xiàn)方法

    這篇文章主要為大家詳細(xì)介紹了javascript計時器編寫過程與實現(xiàn)方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-02-02

最新評論