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文件的方法示例的更多相关文章

  1. Netty学习笔记(一):接收nodejs模拟表单上传的文件

    好久不写博客了,也好久不写代码了,这两天临时遇上一个事情,觉得不难,加上觉得手有些生,就动手做了一下,结果遇上了不少坑,有新坑,有老坑,痛苦无比,现在总算差不多了,赶紧记录下来,希望以后不再重复这种痛 ...

  2. PHP cURL应用实现模拟登录与采集使用方法详解

    对于做过数据采集的人来说,cURL一定不会陌生.虽然在PHP中有file_get_contents函数可以获取远程链接的数据,但是它的可控制性太差了,对于各种复杂情况的采集情景,file_get_co ...

  3. PHP cURL实现模拟登录与采集使用方法详解教程

    来源:http://www.zjmainstay.cn/php-curl 本文将通过案例,整合浏览器工具与PHP程序,教你如何让数据 唾手可得 . 对于做过数据采集的人来说,cURL一定不会陌生.虽然 ...

  4. 调试SQLSERVER (一)生成dump文件的方法

    调试SQLSERVER (一)生成dump文件的方法 调试SQLSERVER (二)使用Windbg调试SQLSERVER的环境设置调试SQLSERVER (三)使用Windbg调试SQLSERVER ...

  5. 两种动态加载JavaScript文件的方法

    两种动态加载JavaScript文件的方法 第一种便是利用ajax方式,第二种是,动静创建一个script标签,配置其src属性,经过把script标签拔出到页面head来加载js,感乐趣的网友可以看 ...

  6. Apache日志不记录图片文件设置方法和来源日志的配置

    Apache日志不记录图片文件设置方法 <FilesMatch "\.(ico|gif|jpg|swf)">SetEnv IMAG 1</FilesMatch&g ...

  7. asp.net读取excel文件多种方法

    asp.net读取excel文件的三种方法示例,包括采用OleDB读取Excel文件.引用的com组件读取Excel文件.用文件流读取.   方法一:采用OleDB读取Excel文件 把Excel文件 ...

  8. asp.net 文件上传示例整理

    ASP.NET依托.net framework类库,封装了大量的功能,使得上传文件非常简单,主要有以下三种基本方法. 方法一:用Web控件FileUpload,上传到网站根目录.  代码如下 复制代码 ...

  9. java中读取资源文件的方法

    展开全部 1.使用java.util.Properties类的load()方法 示例: //文件在项目下.不是在包下!! InputStream in = new BufferedInputStrea ...

随机推荐

  1. php中include包含文件路径查找过程

    首先,“路径”分为三种: 1.绝对路径,以/开头(unix系统)或c:等盘符开头(windows系统). 2.相对路径,以.开头,有./(当前目录)和../(上级目录). 3.其他路径,不是绝对路径和 ...

  2. Unable to open debugger port : java.net.ConnectException “Connection refused”

    http://stackoverflow.com/questions/28283087/unable-to-open-debugger-port-java-net-connectexception-c ...

  3. 通过GeoIP2分析访问者IP获取地理位置信息

    原文链接:http://blog.csdn.net/johnnycode/article/details/42028841 MaxMind GeoIP2 服务能识别互联网用户的地点位置与其他特征,应用 ...

  4. 教你使用UIWindow实现窗口的切换

    这两天写了一个手势解锁,该死的需求要求这个手势解锁页面各种出现,毕竟人家这个客户端酒20多个领导用用的,怕泄密就加了各种保密措施.先来看下需求:1.用户注册登录后跳转设置手势页面(必须设置).2.ap ...

  5. SWD应用接口

    随着ARM公司对Cortex系列的推出,采样SWD方式调试成了大家的首选.SWD不仅速度可以与JTAG媲美,而且使用的调试线少得多.很多人在采样SWD方式进行调试时,一般都是采用4线: ① VCC   ...

  6. 图解TCP/IP读书笔记(三)

    第三章.数据链路 数据链路层是计算机网络最基本的内容. 数据链路层的协议定义了通过通信媒介互连的设备之间传输的规范. 一.数据链路相关技术 1.MAC地址 关于MAC地址的几个要点: ①MAC地址长度 ...

  7. 修改图层的symbol(AE+C#)

    取出一个图层的symbol 在其基础上对其进行修改 private void button1_Click(object sender, EventArgs e)        {  mp;nbsp;  ...

  8. CentOS单用户模式下修改ROOT密码和grub加密

    Linux 系统处于正常状态时,服务器主机开机(或重新启动)后,能够由系统引导器程序自动引导 Linux 系统启动到多用户模式,并提供正常的网络服务.如果系统管理员需要进行系统维护或系统出现启动异常时 ...

  9. vb.net 写入文件同步锁

    <SoapHeader("oHeader")> _ <WebMethod()> _ <ScriptMethod(ResponseFormat:=Res ...

  10. Windows,OS X 屏幕录制gif的工具

    gif比png,jpg具有更好的展示效果.github上的很多项目就用gif. 一个比较好的工具是 : http://cockos.com/licecap/    但是目前不支持linux.