node+axios實現(xiàn)服務(wù)端文件上傳示例
最近調(diào)研企業(yè)wx集成H5應(yīng)用
,其中有一個發(fā)送圖文消息
,需要上傳圖片到臨時素材庫。之前做過文件上傳到阿里云、七牛云都是服務(wù)端提供封裝好的文件上傳接口,在客戶端使用ajax
的方式上傳。所以就來踩踩坑,使用node
+axios
實現(xiàn)服務(wù)端
文件上傳。
一、接口文檔介紹
請求方式:POST(HTTPS)
請求地址:https://qyapi.weixin.qq.com/cgi-bin/media/upload?access_token=ACCESS_TOKEN&type=TYPE
- 使用
multipart/form-data
POST上傳文件, 文件標識名為”media”。 - POST的請求包中,
form-data
中媒體文件標識,應(yīng)包含有 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
庫,可以用在客戶端瀏覽器和服務(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 需要替換為真實 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
就是上傳到素材庫的媒體文件唯一標識,發(fā)送圖文消息時需要用到。
以上就是node+axios實現(xiàn)服務(wù)端文件上傳示例的詳細內(nèi)容,更多關(guān)于node+axios服務(wù)端文件上傳的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
nodejs版本過高導致vue2版本的項目無法正常啟動的解決方案
這篇文章主要給大家介紹了關(guān)于nodejs版本過高導致vue2版本的項目無法正常啟動的解決方案,本文小編給大家詳細介紹了如何解決這個問題,如有遇到同樣問題的朋友可以參考下2023-11-11利用Node.js+Koa框架實現(xiàn)前后端交互的方法
這篇文章主要給大家介紹了利用Node.js+Koa框架實現(xiàn)前后端交互的方法,文中介紹的非常詳細,對大家具有一定的參考價值,需要的朋友們下面來一起學習學習吧。2017-02-02Node.js創(chuàng)建子進程的幾種實現(xiàn)方式
這篇文章主要介紹了Node.js創(chuàng)建子進程的幾種實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-10-10