//文件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. 6.BOM

    BOM的介绍 浏览器对象模型. 操作浏览器部分功能的API.比如让浏览器自动滚动. BOM的结构图 window对象是BOM的顶层(核心)对象,所有对象都是通过它延伸出来的,也可以称为window的子 ...

  2. 如何实现 Python 中 selnium 模块的换行

    如何实现 Python 中 selnium 模块的换行 三种方法: 直接调用 .submit() 方法,常使用在用户密码登录中 # driver.find_element_by_xpath('//*[ ...

  3. uC/OS-II 函数之邮箱管理相关函数

    上文主要介绍了消息队列相关的函数,本文介绍邮箱管理相关的函数:OSMboxCreate()建立一个邮箱,OSMboxDel()删除一个邮箱,OSMboxPend()等待邮箱中的消息,OSMboxPos ...

  4. 阿里云服务主机部署Thinkphp系统错误解决方案

    最近在阿里云上购买了虚拟主机,于是有了把自己的网站挂在云上的冲动,那就行动呗.本来想的很简单,以为在修改数据库配置之后,将文件打包上传,然后就可以了,可在实际操作过程中,出现了很多问题,找了很多资料, ...

  5. (一)使用appium之前为什么要安装nodejs???

    很多人在刚接触appium自动化时,可能会像我一样,按照教程搭建好环境后,却不知道使用appium之前为什么要用到node.js,nodejs到底和appium是什么关系,对nodejs也不是很了解, ...

  6. git 修改配置

    git config 查看配置信息 config 配置项帮助信息 $ git config config 配置有system级别 global(用户级别) 和local(当前仓库)三个设置项 从sys ...

  7. [转] 深入理解Java G1垃圾收集器

    [From] https://www.cnblogs.com/ASPNET2008/p/6496481.html 深入理解Java G1垃圾收集器 本文首先简单介绍了垃圾收集的常见方式,然后再分析了G ...

  8. cuda9.0 中不存在libnppi.so

    编译一个caffe版本,报错找不到 -lnppi 发现使用打是cuda9.0, 但是cuda9.0 中不存在libnppi.so. 只好换成cuda8.0.

  9. Ubuntu 18.04 安装 odoo12 源码版

    更新和升级 在我们进入安装过程之前,你应该更新和升级Ubuntu.打开终端窗口,发出以下命令: sudo apt-get updatesudo apt-get upgrade 注意:如果内核升级,则必 ...

  10. Netflix Hystrix笔记

    maven引入 <dependency> <groupId>com.netflix.hystrix</groupId> <artifactId>hyst ...