亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

前端通過(guò)表單將pdf等文件傳入后端

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

我們知道在js中我們可以通過(guò):

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

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

前端通過(guò)表單形式將其傳入后端

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

原來(lái)前端通過(guò)文件上傳表單的方式將文件傳輸?shù)胶蠖?。這通常涉及使用 HTML 的 <form> 元素和 <input type="file"> 輸入框,以及設(shè)置適當(dāng)?shù)谋韱螌傩詠?lái)支持文件上傳。

Payload截圖

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

文件上傳的流程:

  • 用戶在文件輸入框中選擇一個(gè)文件。
  • 用戶點(diǎn)擊提交按鈕,瀏覽器將會(huì)把表單數(shù)據(jù)(包括選定的文件)打包成 multipart/form-data 格式的請(qǐng)求體。
  • 請(qǐng)求被發(fā)送到指定的后端URL(在這個(gè)例子中是 /upload)。
  • 后端接收到請(qǐng)求后,可以通過(guò)相應(yīng)的框架或庫(kù)來(lái)解析 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> 元素定義了一個(gè)表單,其中:
    • action="/upload" 指定了表單提交的目標(biāo)后端URL。
    • method="POST" 指定了使用POST方法提交表單。
    • enctype="multipart/form-data" 表示表單中包含文件上傳,這是必需的,因?yàn)槲募蟼餍枰褂?nbsp;multipart/form-data 類型來(lái)傳輸文件數(shù)據(jù)。
  • <input type="file" name="file" id="fileInput"> 是文件上傳的輸入框,其中:
    • type="file" 表示這是一個(gè)文件輸入框,允許用戶選擇文件。
    • name="file" 指定了后端接收文件時(shí)的字段名稱,這個(gè)名稱在后端處理文件時(shí)很重要。
    • id="fileInput" 可以用來(lái)通過(guò) JavaScript 獲取文件輸入框的引用,以便在用戶選擇文件后執(zhí)行一些操作(例如顯示文件名或大小)。
  • <button type="submit">上傳文件</button> 是一個(gè)提交按鈕,點(diǎn)擊它會(huì)觸發(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ù)器運(yùn)行在 http://localhost:3000');
    });

    在這個(gè)例子中,使用了 multer 中間件來(lái)處理單個(gè)文件上傳,upload.single('file') 表示期望接收一個(gè)名為 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ù)組來(lái)接收上傳的文件,并使用 move_uploaded_file() 函數(shù)將文件從臨時(shí)位置移動(dòng)到指定的目標(biāo)位置。

用JS將文件傳入后端

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

html

<div>
    <input type="file" id="File">
    <button>點(diǎn)擊上傳文件</button>
</div>

JS綁定事件

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

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

axios傳遞

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

通過(guò)ajax就可以將文件傳入后端。

總結(jié)

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

相關(guān)文章

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

    微信用戶訪問小程序的登錄過(guò)程詳解

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

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

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

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

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

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

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

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

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

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

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

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

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

    ElementUI中Tree組件使用案例講解

    這篇文章主要介紹了ElementUI中Tree組件使用案例講解,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    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計(jì)時(shí)器編寫過(guò)程與實(shí)現(xiàn)方法

    javascript計(jì)時(shí)器編寫過(guò)程與實(shí)現(xiàn)方法

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

最新評(píng)論