node+axios實(shí)現(xiàn)服務(wù)端文件上傳示例
最近調(diào)研企業(yè)wx集成H5應(yīng)用
,其中有一個發(fā)送圖文消息
,需要上傳圖片到臨時素材庫。之前做過文件上傳到阿里云、七牛云都是服務(wù)端提供封裝好的文件上傳接口,在客戶端使用ajax
的方式上傳。所以就來踩踩坑,使用node
+axios
實(shí)現(xiàn)服務(wù)端
文件上傳。
一、接口文檔介紹
請求方式:POST(HTTPS)
請求地址:https://qyapi.weixin.qq.com/cgi-bin/media/upload?access_token=ACCESS_TOKEN&type=TYPE
- 使用
multipart/form-data
POST上傳文件, 文件標(biāo)識名為”media”。 - POST的請求包中,
form-data
中媒體文件標(biāo)識,應(yīng)包含有 filename、filelength、content-type等信息。 - 參數(shù)說明:
參數(shù) | 必須 | 說明 |
---|---|---|
access_token | 是 | 調(diào)用接口憑證 |
type | 是 | 媒體文件類型,分別有圖片(image)、語音(voice)、視頻(video),普通文件(file) |
二、文件上傳
2-1.初始化項(xiàng)目
# 創(chuàng)建目錄 mkdir upload-demo # 進(jìn)入upload-demo目錄 cd upload-demo # npm 初始化 npm init -y # 創(chuàng)建app.js touch app.js
2-2.安裝插件依賴
axios
:是一個基于 promise
的 HTTP
庫,可以用在客戶端瀏覽器和服務(wù)端node.js
中。
form-data
:是創(chuàng)建可讀multipart/form-data
流的庫??捎糜谙蚱渌?Web 應(yīng)用程序提交表單和文件上傳。
npm i -S axios form-data
2-3.上傳核心代碼
// app.js const fs = require('fs') const FormData = require('form-data') const axios = require('axios') ;(()=>{ let formData = new FormData(); let imgFiles = fs.createReadStream('./test.jpg') // 根目錄下需要有一個test.jpg文件 formData.append('media', imgFiles); axios({ url: 'https://qyapi.weixin.qq.com/cgi-bin/media/upload', method: 'POST', params: { access_token: 'ACCESS_TOKEN', // ACCESS_TOKEN 需要替換為真實(shí) token type: 'image', // 這里以上圖片為例 }, data: formData, headers: { 'Content-Type': 'multipart/form-data', // 必須要設(shè)置 }, }).then(res=>{ console.log(res.data) }) })();
2-4.執(zhí)行腳本
node app.js
不出意外會輸入以下內(nèi)容:
{
"errcode": 0,
"errmsg": "",
"type": "image",
"media_id": "1G6nrLmr5EC3MMb_-zK1dDdzmd0p7cNliYu9V5w7o8K0",
"created_at": "1380000000"
}
其中media_id
就是上傳到素材庫的媒體文件唯一標(biāo)識,發(fā)送圖文消息時需要用到。
以上就是node+axios實(shí)現(xiàn)服務(wù)端文件上傳示例的詳細(xì)內(nèi)容,更多關(guān)于node+axios服務(wù)端文件上傳的資料請關(guān)注腳本之家其它相關(guān)文章!
- node.js實(shí)現(xiàn)為PDF添加水印的示例代碼
- 使用Node.js給圖片加水印的方法
- Node.js批量給圖片加水印的方法
- Node.js中Express框架使用axios同步請求(async+await)實(shí)現(xiàn)方法
- nodejs+axios爬取html出現(xiàn)中文亂碼并解決示例
- 利用node+koa+axios實(shí)現(xiàn)圖片上傳和回顯功能
- Node.js 使用axios讀寫influxDB的方法示例
- JavaScript利用油猴腳本實(shí)現(xiàn)去水印功能
- 使用python實(shí)現(xiàn)簡單去水印功能
- node.js去水印方法實(shí)例分析
相關(guān)文章
nodejs版本過高導(dǎo)致vue2版本的項(xiàng)目無法正常啟動的解決方案
這篇文章主要給大家介紹了關(guān)于nodejs版本過高導(dǎo)致vue2版本的項(xiàng)目無法正常啟動的解決方案,本文小編給大家詳細(xì)介紹了如何解決這個問題,如有遇到同樣問題的朋友可以參考下2023-11-11利用Node.js+Koa框架實(shí)現(xiàn)前后端交互的方法
這篇文章主要給大家介紹了利用Node.js+Koa框架實(shí)現(xiàn)前后端交互的方法,文中介紹的非常詳細(xì),對大家具有一定的參考價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧。2017-02-02Node.js創(chuàng)建子進(jìn)程的幾種實(shí)現(xiàn)方式
這篇文章主要介紹了Node.js創(chuàng)建子進(jìn)程的幾種實(shí)現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-10-10NodeJS項(xiàng)目如何打包成可執(zhí)行文件
這篇文章主要介紹了NodeJS項(xiàng)目如何打包成可執(zhí)行文件問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-10-10nodejs 全局變量和全局對象知識點(diǎn)及用法詳解
在本篇文章里小編給大家整理的是一篇關(guān)于nodejs 全局變量和全局對象知識點(diǎn)及用法等內(nèi)容,對此有興趣的朋友們可以學(xué)習(xí)參考下。2021-12-12