node+axios實現(xiàn)服務端文件上傳示例
最近調(diào)研企業(yè)wx集成H5應用,其中有一個發(fā)送圖文消息,需要上傳圖片到臨時素材庫。之前做過文件上傳到阿里云、七牛云都是服務端提供封裝好的文件上傳接口,在客戶端使用ajax的方式上傳。所以就來踩踩坑,使用node+axios實現(xiàn)服務端文件上傳。
一、接口文檔介紹
請求方式:POST(HTTPS)
請求地址:https://qyapi.weixin.qq.com/cgi-bin/media/upload?access_token=ACCESS_TOKEN&type=TYPE
- 使用
multipart/form-dataPOST上傳文件, 文件標識名為”media”。 - POST的請求包中,
form-data中媒體文件標識,應包含有 filename、filelength、content-type等信息。 - 參數(shù)說明:
| 參數(shù) | 必須 | 說明 |
|---|---|---|
| access_token | 是 | 調(diào)用接口憑證 |
| type | 是 | 媒體文件類型,分別有圖片(image)、語音(voice)、視頻(video),普通文件(file) |
二、文件上傳
2-1.初始化項目
# 創(chuàng)建目錄 mkdir upload-demo # 進入upload-demo目錄 cd upload-demo # npm 初始化 npm init -y # 創(chuàng)建app.js touch app.js
2-2.安裝插件依賴
axios:是一個基于 promise 的 HTTP 庫,可以用在客戶端瀏覽器和服務端node.js 中。
form-data:是創(chuàng)建可讀multipart/form-data流的庫??捎糜谙蚱渌?Web 應用程序提交表單和文件上傳。
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 需要替換為真實 token
type: 'image', // 這里以上圖片為例
},
data: formData,
headers: {
'Content-Type': 'multipart/form-data', // 必須要設置
},
}).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就是上傳到素材庫的媒體文件唯一標識,發(fā)送圖文消息時需要用到。
以上就是node+axios實現(xiàn)服務端文件上傳示例的詳細內(nèi)容,更多關于node+axios服務端文件上傳的資料請關注腳本之家其它相關文章!
相關文章
nodejs調(diào)用cmd命令實現(xiàn)復制目錄
本文給大家介紹的是如何在nodejs中調(diào)用CMD命令,從而實現(xiàn)目錄的復制,非常的實用,有需要的小伙伴可以參考下。2015-05-05
node+axios實現(xiàn)下載外網(wǎng)文件到本地
這篇文章主要為大家介紹了node+axios實現(xiàn)下載外網(wǎng)文件到本地示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-06-06
Windows中安裝nvm進行Node版本控制與詳細使用教程
nvm和npm都是node.js版本管理工具,但是為了解決node各種不同之間版本存在不兼容的問題,因此可以通過nvm安裝和切換不同版本的node,感興趣的可以了解一下2023-09-09
node 文件上傳接口的轉(zhuǎn)發(fā)的實現(xiàn)
這篇文章主要介紹了node 文件上傳接口的轉(zhuǎn)發(fā)的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-09-09
Sublime Text3 配置 NodeJs 環(huán)境的方法
大家都知道,Sublime Text 安裝插件一般從 Package Control 中直接安裝即可,當我安裝 node js 插件時候,直接通過Package Control 安裝,雖然插件安裝成功了,但是找不到配置文件 Nodejs.sublime-build 來更改一些配置2020-05-05

