nodejs模拟http-post文件的方法示例
var fs = require("fs");
var http = require('http');
function PostFileToServer(sFileName, data, callback) {
var boundary = "NODEJSPOSTFILE-" + (Math.random() * 9007199254740992).toString(36);
var sHeader = "--" + boundary + "\r\n";
sHeader += "Content-Disposition: form-data; name=\"fileName\"; filename=\"" + sFileName + "\"\r\n";
sHeader += "Content-Type: application/octet-stream\r\n\r\n";
var sEndData = "\r\n--" + boundary + "--\r\n\r\n";
var options = {
hostname: "127.0.0.1",
port : 3031,
path : "/cgi-bin/upload?action=uploadFile&newname=my.jpg",
method : 'POST'
};
var httpreq = http.request(options, function (httpres) {
httpres.on('data', function (dataResponse) {
var response = JSON.parse(dataResponse);
console.log(response.md5);
console.log(response.name);
});
});
httpreq.setHeader('Content-Type', 'multipart/form-data; boundary=' + boundary + '');
httpreq.setHeader('Content-Length', Buffer.byteLength(sHeader) + data.length + Buffer.byteLength(sEndData));
httpreq.on('error', function(e) {
console.log('problem with request: ' + e.message);
callback(e);
return;
});
httpreq.write(sHeader);
httpreq.write(data);
httpreq.write(sEndData);
httpreq.end();
}
fs.readFile('1.jpg', function (err, data) {
if (err) throw err;
console.log(data.length);
PostFileToServer("1.jpg", data, function(){
console.log("call back");
});
});
{
fileName:
{
domain: null,
_events: {},
_maxListeners: undefined,
size: 595284,
path: 'tmp\\upload_ba227eaf1015fda43ea4a218b2161748',
name: '1.jpg',
type: 'application/octet-stream',
hash: null,
lastModifiedDate: Sun Mar 08 2015 14:34:18 GMT+0800 (中国标准时间),
_writeStream:
{
_writableState: [Object],
writable: true,
domain: null,
_events: {},
_maxListeners: undefined,
path: 'tmp\\upload_ba227eaf1015fda43ea4a218b2161748',
fd: null,
flags: 'w',
mode: 438,
start: undefined,
pos: undefined,
bytesWritten: 595284,
closed: true
}
}
}
nodejs模拟http-post文件的方法示例的更多相关文章
- Netty学习笔记(一):接收nodejs模拟表单上传的文件
好久不写博客了,也好久不写代码了,这两天临时遇上一个事情,觉得不难,加上觉得手有些生,就动手做了一下,结果遇上了不少坑,有新坑,有老坑,痛苦无比,现在总算差不多了,赶紧记录下来,希望以后不再重复这种痛 ...
- PHP cURL应用实现模拟登录与采集使用方法详解
对于做过数据采集的人来说,cURL一定不会陌生.虽然在PHP中有file_get_contents函数可以获取远程链接的数据,但是它的可控制性太差了,对于各种复杂情况的采集情景,file_get_co ...
- PHP cURL实现模拟登录与采集使用方法详解教程
来源:http://www.zjmainstay.cn/php-curl 本文将通过案例,整合浏览器工具与PHP程序,教你如何让数据 唾手可得 . 对于做过数据采集的人来说,cURL一定不会陌生.虽然 ...
- 调试SQLSERVER (一)生成dump文件的方法
调试SQLSERVER (一)生成dump文件的方法 调试SQLSERVER (二)使用Windbg调试SQLSERVER的环境设置调试SQLSERVER (三)使用Windbg调试SQLSERVER ...
- 两种动态加载JavaScript文件的方法
两种动态加载JavaScript文件的方法 第一种便是利用ajax方式,第二种是,动静创建一个script标签,配置其src属性,经过把script标签拔出到页面head来加载js,感乐趣的网友可以看 ...
- Apache日志不记录图片文件设置方法和来源日志的配置
Apache日志不记录图片文件设置方法 <FilesMatch "\.(ico|gif|jpg|swf)">SetEnv IMAG 1</FilesMatch&g ...
- asp.net读取excel文件多种方法
asp.net读取excel文件的三种方法示例,包括采用OleDB读取Excel文件.引用的com组件读取Excel文件.用文件流读取. 方法一:采用OleDB读取Excel文件 把Excel文件 ...
- asp.net 文件上传示例整理
ASP.NET依托.net framework类库,封装了大量的功能,使得上传文件非常简单,主要有以下三种基本方法. 方法一:用Web控件FileUpload,上传到网站根目录. 代码如下 复制代码 ...
- java中读取资源文件的方法
展开全部 1.使用java.util.Properties类的load()方法 示例: //文件在项目下.不是在包下!! InputStream in = new BufferedInputStrea ...
随机推荐
- JDBC第二次学习
脑子太笨,必须得记录下来一些文字,方便回来查询. 这是我的第二次学习JDBC的笔记,看的是传智播客——李勇老师的JDBC系列,已看到第23集. 分析在实际项目中该如何应用JDBC 一个简单用户相关的数 ...
- zend studio10破解
http://blog.csdn.net/qq1355541448/article/details/16807429
- [RM HA4] RM状态存储与还原原理详解
RM状态存储与还原机制详解 转载请注明原始链接http://www.cnblogs.com/shenh062326/p/3562199.html. 摘要 本文基于Apache Hadoop社区最新re ...
- ubuntu为Python添加默认搜索路径
我们在自己写python模块的时候,怎么样把自己写的模块加入到python默认就有的搜索路径中呢?不要每次非得import sys; sys.path.append(‘/home/uestc/rese ...
- Centos环境下部署游戏服务器-编译
游戏服务器是在windows环境开发的,相关跨平台的东西在这里不谈了,只谈如何将Visual Studio 工程转换到Linux下编译.这里涉及到的软件分别为:Centos版本为6.4,Visual ...
- sublime3 乱码问题
解决方法: 一.安装Package Control 二.按Ctrl+Shift+P打开命令行,输入Install Package,回车,然后继续输入ConvertToUTF8,回车 (把GB2312 ...
- Linux任务前后台的切换
Shell支持作用控制,有以下命令实现前后台切换: 1. command& 让进程在后台运行 2. jobs 查看后台运行的进程 3. fg %n 让后台运行的进程n到前台来 4. bg %n ...
- mybaits3.2.8 别名包扫描通配符
<mybatis.version>3.2.8</mybatis.version><mybatis.spring.version>1.2.2</mybatis. ...
- java读取某个文件夹下的所有文件
import java.io.FileNotFoundException;import java.io.IOException;import java.io.File; public class Re ...
- 在windows系统上安装VMware Workstation虚拟机,然后在虚拟机VMware Workstation上安装linux系统,在linux系统安装xshell的服务端,在windows系统上安装xshell。用windows系统上的xshell连接到linux
第一步:安装xshell: 去百度 xshell ,然后安装一下就可以了.就是普通的软件安装,在这里不做过多的接收. 第二步:安装虚拟机VMware Workstation 百度安装,不做过介绍 ...