node+axios實(shí)現(xiàn)服務(wù)端文件上傳示例
最近調(diào)研企業(yè)wx集成H5應(yīng)用,其中有一個(gè)發(fā)送圖文消息,需要上傳圖片到臨時(shí)素材庫。之前做過文件上傳到阿里云、七牛云都是服務(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-dataPOST上傳文件, 文件標(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:是一個(gè)基于 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') // 根目錄下需要有一個(gè)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ā)送圖文消息時(shí)需要用到。
以上就是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調(diào)用cmd命令實(shí)現(xiàn)復(fù)制目錄
本文給大家介紹的是如何在nodejs中調(diào)用CMD命令,從而實(shí)現(xiàn)目錄的復(fù)制,非常的實(shí)用,有需要的小伙伴可以參考下。2015-05-05
Node.js應(yīng)用設(shè)置安全的沙箱環(huán)境
這篇文章主要介紹了Node.js應(yīng)用設(shè)置安全的沙箱環(huán)境的方法以及注意事項(xiàng),對此有需要的朋友可以參考學(xué)習(xí)下。2018-04-04
node+axios實(shí)現(xiàn)下載外網(wǎng)文件到本地
這篇文章主要為大家介紹了node+axios實(shí)現(xiàn)下載外網(wǎng)文件到本地示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06
Windows中安裝nvm進(jìn)行Node版本控制與詳細(xì)使用教程
nvm和npm都是node.js版本管理工具,但是為了解決node各種不同之間版本存在不兼容的問題,因此可以通過nvm安裝和切換不同版本的node,感興趣的可以了解一下2023-09-09
node 文件上傳接口的轉(zhuǎn)發(fā)的實(shí)現(xiàn)
這篇文章主要介紹了node 文件上傳接口的轉(zhuǎn)發(fā)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
Node.js API詳解之 dgram模塊用法實(shí)例分析
這篇文章主要介紹了Node.js API詳解之 dgram模塊用法,結(jié)合實(shí)例形式分析了Node.js API中dgram模塊基本功能、函數(shù)、使用方法及操作注意事項(xiàng),需要的朋友可以參考下2020-06-06
Sublime Text3 配置 NodeJs 環(huán)境的方法
大家都知道,Sublime Text 安裝插件一般從 Package Control 中直接安裝即可,當(dāng)我安裝 node js 插件時(shí)候,直接通過Package Control 安裝,雖然插件安裝成功了,但是找不到配置文件 Nodejs.sublime-build 來更改一些配置2020-05-05
nodejs服務(wù)搭建教程 nodejs訪問本地站點(diǎn)文件
這篇文章主要為大家詳細(xì)介紹了nodejs服務(wù)搭建教程,訪問本地站點(diǎn)文件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04

