//文件post发送
var express = require('express');
var router = express.Router();
var request = require("request");
var fs = require("fs");
fs.readFile("public/img/test.jpg", function (err, data) {
if (err) {
res.send({"errMsg":"'图片上传失败'"});
return;
}
var base64str = new Buffer(data).toString('base64'); //图片转字节
var mkJSON = {
path: "public/upload",
img: base64str,
encoding: 'utf8'
};
request({
url: "127.0.0.1:3000/img",
method: "post",
form: {
mark: "IMG",
content: JSON.stringify(mkJSON)
}
}, function (error, response, body) {
if (!error && body != undefined && response.statusCode == 200 && body.indexOf("失败") < 0) {
//fs.unlink(localPath);
res.send({
success: true
});
} else {
console.log("err:" + body);
res.send({"errMsg": "图片post失败", success: false});
}
});
});
//post的文件进行接收
router.post("/img", function (req, res) {
var content = req.param('content');
if (null != content) {
var temp = JSON.parse(content);
var mkJSON = temp[0];
var filePath = mkJSON.path.replace(/\B\//, '');
filePath = filePath.substr(0, filePath.lastIndexOf("/"));if (!err) { //目录创建成功
fs.writeFileSync(mkJSON.path.replace(/\B\//, ''), new Buffer(mkJSON.img.replace(/ /g, '+'), 'base64'));
//res.json({"newImgPath": constClass.ip + "/image/" + mkJSON.path.replace(/\B\//, '')});
res.send('图片接收成功!');
} else { //目录创建失败
res.send('图片接收失败');
}
} else {
res.send('图片接收失败');
}
});

thinkjs版:

async uploadAction() {
let imgData = this.post("image");
let base64Data = imgData.replace(/^data:image\/\w+;base64,/, "");
let dataBuffer = new Buffer(base64Data, 'base64');
let imgpath = imgutil.getImageUrl("jpg");
let base64str = new Buffer(dataBuffer).toString('base64'); //图片转字节
console.log(imgpath);
let mkJSON = {
path: imgpath,
img: base64str,
encoding: 'utf8'
};
let req = think.promisify(request.post);
let reqObj = {
url: think.config("makesite"),
method: "post",
form: {
mark: "IMG",
content: JSON.stringify(mkJSON)
}
};
let rs = await req(reqObj);
if(rs != undefined && rs.statusCode == 200 && rs.body.indexOf("失败") < 0){
return this.success(think.config("imgsite")+imgpath);
}else{
return this.fail(1,"图片上传出错");
}
}

post方式发送接收文件的更多相关文章

  1. 应用SecureCRT(发送接收文件)

    使用 SecureCRT 和 cz. sz,可以从 Linux 服务器上下载/上传文件. Linux 上要安装 lszrz 包 (1)编译安装root 账号登陆后,依次执行以下命令 cd /tmp w ...

  2. STM32 串口USART DMA方式发送接收数据

    硬件:stm32f103cbt6 软件:STM32F10x_StdPeriph_Lib_V3.5.0 文章目录 头文件 USART3_DR的地址 DMA的通道 DMA的中断 USART接收回调函数 头 ...

  3. Java以邮件附件的方式发送excel文件

    String to = "xxx@qq.com"; // 收件人的QQ邮箱 String from = "xxx@qq.com"; // 发件人的QQ邮箱 St ...

  4. Qt5 基于TCP传输的发送/接收文件服务器(支持多客户端)

    一.实现功能 1.服务器端选择待发送的文件,可以是多个 2.开启服务器,支持多客户端接入,能够实时显示每个客户端接入状态 3.等待所有客户端都处于已连接状态时,依次发送文件集给每个客户端,显示每个客户 ...

  5. python通过get方式,post方式发送http请求和接收http响应-urllib urllib2

    python通过get方式,post方式发送http请求和接收http响应-- import urllib模块,urllib2模块, httplib模块 http://blog.163.com/xyc ...

  6. java 模拟http请求,通过流(stream)的方式,发送json数据和文件

    发送端: /** * 以流的方式 * 发送文件和json对象 * * @return */ public static String doPostFileStreamAndJsonObj(String ...

  7. python通过get,post方式发送http请求和接收http响应的方法,pythonget

    python通过get,post方式发送http请求和接收http响应的方法,pythonget 本文实例讲述了python通过get,post方式发送http请求和接收http响应的方法.分享给大家 ...

  8. 需求:过滤下面这个网页里共723行 校对中里 行数为两位数的 行 并设置sz和rz在Windows和Linux之间发送和接收文件不用搭FTP

    需求:过滤下面这个网页里共723行 校对中里 行数为两位数的 行 并设置sz和rz在Windows和Linux之间发送和接收文件不用搭FTP 需求:过滤下面这个网页里共723行 校对中里 行数为两位数 ...

  9. 使用MSCOMM发送任意文件,还有一些注意事项

    第一步:发送文件 FILE* pSENDFILE = _wfopen(m_edit_chosefile, _T("rb"));//以二进制打开待发送文件的的文件指针 fseek(p ...

随机推荐

  1. “全栈2019”Java第六十三章:接口与抽象方法详解

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  2. bzoj4199: [Noi2015]品酒大会(后缀数组)

    题目描述 一年一度的“幻影阁夏日品酒大会”隆重开幕了.大会包含品尝和趣味挑战 两个环节,分别向优胜者颁发“首席品酒家”和“首席猎手”两个奖项,吸引了众多品酒师参加. 在大会的晚餐上,调酒师 Rainb ...

  3. [spring] Ioc 基础

    Ioc的理解:调用类对某一接口的实现类的依赖关系又第三方注入,以移除调用类对接口实现类的依赖.又叫做依赖注入.调用者对接口的选择权利被剥夺,交给了第三方.举个例子,学生本来可以选择哪个老师给他上课的, ...

  4. http请求全过程

    第一步:浏览器生成http请求信息(第五层) 1.分解url 当用户输入网址时,浏览器会以一定的规则分解网址, 以 http://www.cemabenteng.com/dir/index.html ...

  5. TypeScript学习小结

    TypeScript是什么 TypeScript是由微软公司开发的一个开源JavaScript的超集,主要提供了类型系统和对ES6的支持,可以编译成纯JavaScript,主要就是对JavaScrip ...

  6. Java - n的阶乘计算

    用递归方法,求10!的阶乘 分析: f(n) = n * f(n-1)           n != 1        -----        递推公式 f(n) = 1               ...

  7. SQL语句模糊查询年月

    <if test="uploadTime != null" > <![CDATA[ and date_format(w.upload_time, '%Y%m') ...

  8. Request.QueryString 的用法

    比如常见的URL网页地址都有 xxx.asp?type=reLogin   ?号后面的就是querystring querystring是asp中获取数据的一个方法. 那么就可以用request.qu ...

  9. MySQL对结果进行排序order by

    order by {col_name | expr | position} [ASC | DESC] 查询结果     排序条件的顺序  决定   排序条件   的优先级 如果同一条件下值相等,那么启 ...

  10. 阿里云Centos7上安装MySQL教程

    1 基本安装过程 1.查看系统是否安装了mysql软件 # rpm -qa|grep -i mysql 2.将已经安装过的软件卸载掉.注意:这样的卸载是不彻底,不过这里够用了 # yum remove ...