Node使用formdata格式的數(shù)據(jù)上傳文件到服務(wù)器

概述


首先要聲明一點(diǎn),本文講的是使用node上傳文件到遠(yuǎn)程服務(wù)器的,比如說我們可以使用node上傳圖片到CDN。如果小伙伴想看的是node服務(wù)如何接收客戶端上傳的文件,那么你不用往下看了。

技術(shù)方案


在前端項(xiàng)目中,我們常用的辦法是使用 input 元素選擇文件,然后構(gòu)建 js FormData類的實(shí)例,并調(diào)用append方法將文件添加到FormData實(shí)例中,然后使用ajax庫發(fā)起ajax請(qǐng)求上傳文件即可。

那么在node里面有什么不一樣呢?

1、node并不是原生支持FormData類,我們需要安裝一個(gè)叫form-data的包,然后構(gòu)造FormData實(shí)例

2、由于沒有 input 元素給我們使用,我們需要通過fs.createReadStream(filePath)獲取本地文件實(shí)例,然后調(diào)用FormData實(shí)例的append方法將文件實(shí)例添加到FormData實(shí)例中

3、設(shè)置Content-Type請(qǐng)求頭:?`multipart/form-data; boundary=${formData.getBoundary()}`;? ?formData是構(gòu)建的FormData實(shí)例。注意:千萬要加上boundary=${formData.getBoundary()},不然服務(wù)端有可能拿不到formdata數(shù)據(jù)?。。?!

完成以上工作就可以使用ajax庫上傳文件到服務(wù)端了!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容