导读:
我们有一个项目客户端上传图片,先请求接口把图片上传到node js写的api接口后,经过简单的逻辑处理后,在调用后端的.net接口保存图片,由于node端不需要处理图片,我在想能不能直接把客户端上传的图片流直接传给后端呢?
代码如下:
node端程序
var imgData = req.body.file;
if (!imgData) {
return res.error('请上传图片');
}
var base64Data = imgData.replace(/^data:image\/\w+;base64,/, '');
var dataBuffer = new Buffer(base64Data, 'base64');
var data = new formData();
data.append('file', dataBuffer, {
filename: Date.parse(new Date()) + '.jpg',
contentType: 'image/jpg',
knownLength: dataBuffer.length
});
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;
}
|