node中转图片上传
来源:互联网 发布:linux kernel init 编辑:程序博客网 时间:2024/04/29 22:54
导读:
我们有一个项目客户端上传图片,先请求接口把图片上传到node js写的api接口后,经过简单的逻辑处理后,在调用后端的.net接口保存图片,由于node端不需要处理图片,我在想能不能直接把客户端上传的图片流直接传给后端呢?
代码如下:
node端程序
var imgData = req.body.file; //客户端后去到上传的图片信息 这个地方时base64的字符串 if (!imgData) { return res.error('请上传图片'); } // 过滤需要base64图片的头去掉 var base64Data = imgData.replace(/^data:image\/\w+;base64,/, ''); //然后存储到js buffer中 var dataBuffer = new Buffer(base64Data, 'base64'); // 通过form-data构造请求参数 var data = new formData(); data.append('file', dataBuffer, { filename: Date.parse(new Date()) + '.jpg', //指定图片的名称 contentType: 'image/jpg', //图片类型,我这个地方写死了,可以从图片信息中拿到 knownLength: dataBuffer.length //buffer长度 });//然后向后端发出请求,上传图片fetch(url, {method: 'post', body: data, headers: data.getHeaders()}) .then(function (res) { return res.json(); }).then(function (body) { return callback(body); }).catch(function (err) { return callback(err); });
注:需要引用两个模块
import formData from 'form-data'; import fetch from 'node-fetch';
.net端程序
var action = new ContentResult() { Content = "OK" }; try { var files = Request.Files; foreach (var key in files.AllKeys) { var file = files[key]; var basePath = HttpContext.Server.MapPath("~/upload/"); var fileName = DateTime.Now.ToFileTime().ToString(); var filePath = string.Format(@"{0}\{1}", basePath, file.FileName); file.SaveAs(filePath); } } catch (Exception ex) { action.Content = "error"; return action; }
0 0
- node中转图片上传
- Node.Js上传图片
- node.js文件图片上传
- Node.js入门---上传图片
- node.js kindeditor上传图片
- node.js上传图片小结
- HttpClient中转上传文件
- HttpClient中转上传文件
- node.js实现多图片上传
- Node.js实现多图片上传
- node koa2图片上传的实现
- node.js 用户上传图片到服务器
- Node Js 实现图片上传 学习笔记
- node上传图片重命名及添加后缀
- OSX中转旋图片代码,
- 中转
- httpclient 实现文件上传中转
- 关于node.js上传图片报错问题
- iOS常用宏定义
- cocos-2d-x学习笔记
- Spring(十一):配置DataSource
- AR多标签识别程序1
- android权限问题
- node中转图片上传
- 自定义控件练习——滑动解锁
- 《Java编程思想》读书笔记之移位操作符
- 堆排序
- Unity3d(1)实现简单的射线检测
- Git实现从本地添加项目到远程仓库
- Linux--内核Uevent事件机制 与 Input子系统
- Python之禅
- J2EE:JSTL JSP标准标签库