当前位置: 首页 > news >正文

node.js上传图片接口

node.js需要使用koa-multer库来实现上传图片接口。
实际上先通过koa-multer下载到本地指定目录,然后上传到阿里云(部分格式图片需要转换成网络格式图片jgp再上传)。
首先在系统启动文件引入注册路由:

app.use(BodyParser({'formLimit':'3mb','jsonLimit':'3mb','textLimit':'3mb'
}));
// 注意顺序,必须body parser在前, router在后
app.use(router.routes());// 1. 注册基础路由 注意顺序,必须body parser在前, router在后
const routes = require('./app/routes/index.js');
app.use(routes.routes());
app.use(routes.allowedMethods());// 2. 初始化Main路由
const Main = require('./app/main_erp.js');
Main.init(router);// 3. 将Main路由注册到Koa应用
app.use(router.routes());
app.use(router.allowedMethods());

注意:3. 将Main路由注册到Koa应用不能省,不然无法接收到接口传递过来的文件。
具体的图片的下载和上传代码:

const ImageTool = require('@app/tools/image_tool.js');
var Main = {};// 处理图片
const fs = require('fs');
const path = require('path');// 上传处理
const Multer = require('koa-multer');
const IMAGE_PATH = 'upload/image';
// 存储位置
let image_storage = Multer.diskStorage({destination: function (req, file, cb) {cb(null, IMAGE_PATH);},filename: function (req, file, cb) {//cb(null, Date.now() + '_' + makeid(6) + path.extname(file.originalname));cb(null, file.originalname);}
});
const ImageUploader = Multer({storage: image_storage,limits: {fileSize: 50 * 1024 * 1024 // 50MB限制}
});async function dealImg(ctx) {// 获取文件扩展名const fileExt = path.extname(ctx.req.file.originalname).toLowerCase();// 支持的格式,直接上传原文件const readStream = fs.createReadStream(ctx.req.file.path);let arr = ctx.req.file.path.split('/');let filename = '/img/' + arr[arr.length - 1];//上传图片到阿里云return ImageTool.uploadImage(filename, fileExt, readStream, null, ctx.req.file.path);
}/*** 路由* @param {*} router */
function createRouteMap(router) {// 图片上传接口// 特殊接口,由于依赖Muler, 必须单独定义router.post('/api/uploadImage', ImageUploader.single('pic'), async (ctx, next) => {ctx.body = await dealImg(ctx);});
}Main.init = function(router) {console.log('Main');// console.log('router:', router);createRouteMap(router);
};module.exports = Main;
http://www.dtcms.com/a/491805.html

相关文章:

  • 静态网站建设的技术运用德阳如何做百度的网站
  • 深圳光明网站建设知名网站建设制作
  • h5游戏免费下载:球跑者
  • 使用Grafana监控K8S中的异常Pod
  • C语言基础之:指针、结构体、链表
  • 王国保卫战全集下载 1~5部全系列MOD DLC修版 安卓+ios+PC电脑版
  • wordpress邮件发验证码网站站内结构优化
  • 国内专业网站设计关于网站运营
  • 【Java序列化与反序列化详解】
  • JAiRouter v1.0.0 正式发布:企业级 AI 服务网关的开源解决方案
  • HDR Scattering and Tone Mapping
  • 做我的世界皮肤壁纸的网站工业设计软件上市公司
  • 网站备案模板自己做的网站可以发布吗
  • vue-easy-tree树状结构
  • 重庆网站设计公司小白测评做网站
  • 可以发布广告的网站农村网站建设补助
  • 哪个网站做的简历最好专业网站设计力荐亿企邦
  • 轻量云服务器Lighthouse × 1Panel Halo 开启创意新玩法,建站与服务部署全攻略
  • 亦庄附近的网站建设公司关键词排名怎么查
  • 做网站建设的利润南宁做企业网站
  • 群体稳定性指标PSI:机器学习模型稳定性评估的核心工具
  • **标题:发散创新:探索自愈系统的设计与实现**引言:随着计算机技术的飞速发展,软件系统的可靠性和稳定性问题愈发受到关注。本文将
  • 常驻服务问答
  • 龙岩建网站公司手机网站建设公司
  • Flink性能调优基石:资源配置与内存优化实践
  • h5页面制作流程抖音seo搜索优化
  • 自己动手做网站公司网页网站建设ppt模板
  • 图片渐变透明,图片透明渐变,图片怎么渐变透明,颜色渐变透明,颜色透明渐变,怎么让图片渐变透明,图片边缘渐变透明,图片渐变半透明
  • 数据产品(3)-数据中台
  • STM32理论 —— 存储、中断