Express框架开发接口之实现七牛云上传图片功能

编程入门 行业动态 更新时间:2024-10-07 17:24:07

Express框架开发接口之实现七牛云<a href=https://www.elefans.com/category/jswz/34/1770945.html style=上传图片功能"/>

Express框架开发接口之实现七牛云上传图片功能

安装和配置multer

注意:使用express.urlencoded()中间件无法解析multipart/form-data格式的请求体 数据。 当前项目,推荐使用 multer 来解析multipart/form-data格式的表单数据。

npm i multer

导入并配置multer :

// 导入解析 formdata 格式表单数据的包
const multer = require('multer')
// 导入处理路径的核心模块
const path = require('path')
// 创建 multer 的实例对象,通过 dest 属性指定文件的存放路径
const upload = multer({ dest: path.join(__dirname, '../uploads') })

// upload.single() 是一个局部生效的中间件,用来解析 FormData 格式的表单数据

// 将文件类型的数据,解析并挂载到 req.file 属性中

// 将文本类型的数据,解析并挂载到 req.body 属性中

router.post("接口路径", upload.single('avatar'), (req, res)=>{  // avatar为file表单的name属性req.file;   // 提交之后通过req.file获取本次提交的信息对象/*{ fieldname: 'avatar',originalname: 'avatar.jpg',encoding: '7bit',mimetype: 'image/jpeg',destination: 'public/upload/avatar',filename: 'ad84a9e186d0e9deaa774c237076cd8b',path: 'public\\upload\\avatar\\ad84a9e186d0e9deaa774c237076cd8b',size: 84657 }*/
})
const express=require('express')
const router=express.Router()
// 导入处理轮播图路由函数模块
const upload_handler = require('../router_handler/upload')
// 导入解析 formdata 格式表单数据的包
const multer = require('multer')
// 导入处理路径的核心模块
const path = require('path')
// 创建 multer 的实例对象,通过 dest 属性指定文件的存放路径
const upload = multer({ dest: path.join(__dirname, '../uploads') })
//上传轮播图
router.post('/uploadFile', upload.single('url'), upload_handler.Upload)
module.exports = router;

利用七牛云实现图片上传功能

七牛云官网 :七牛云 | 一站式场景化智能音视频 APaaS

安装七牛 npm add qiniu

把qn.js放到utils文件夹下:

const qiniu_sdk = require('qiniu')
// const { qiniu } = require('')
qiniu_sdk.conf.ACCESS_KEY = 'mxmPUMJP44fUKw5ZufdpHp76zKmPCr0XD51Tq_tj';
qiniu_sdk.conf.SECRET_KEY = '6yttynCYvOt0-rUvHwMDP9sLb2By1dTZINX4nXZM';
// 要上传的空间
const bucket = "02cook"
// 文件前缀
const prefix = 'image/avatar/'
// 生成上传文件的 token
const token = (bucket, key) => {const policy = new qiniu_sdk.rs.PutPolicy({ isPrefixalScope: 1, scope: bucket + ':' + key })return policy.uploadToken()
}
const config = new qiniu_sdk.conf.Config()
async function upload_file(file_name, file_path) {// 保存到七牛的地址const file_save_path = prefix + file_name// 七牛上传的tokenconst up_token = token(bucket, file_save_path)const extra = new qiniu_sdk.form_up.PutExtra()const formUploader = new qiniu_sdk.form_up.FormUploader(config)// 上传文件let ret = await new Promise((resolve, reject) => {formUploader.putFile(up_token, file_save_path, file_path, extra, (err, data) => {if (!err) {// 上传成功, 处理返回值resolve(data);} else {// 上传失败, 处理返回代码reject(data);}});})return ret
}// upload_file(上传后的名字,上传的图片路径)   //上传的图片相对路径, 从项目文件夹出发
// upload_file('01.jpg', './01.jpg')  module.exports = upload_file

const QINIU_URI="/"
module.exports={QINIU_URI
}

更多推荐

Express框架开发接口之实现七牛云上传图片功能

本文发布于:2023-11-30 13:02:43,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1650485.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:上传图片   框架   接口   功能   Express

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!