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 ...
随机推荐
- Android Non-UI to UI Thread Communications(Part 2 of 5)
Original:http://www.intertech.com/Blog/android-non-ui-to-ui-thread-communications-part-2-of-5/ his i ...
- C语言学习资料(转载)
◆经典C源程序100例:http://post.baidu.com/f?kz=8618367 ◆时钟的驻留程序:http://post.baidu.com/f?kz=10822377 ◆数据结构暨若干 ...
- Java:IO流之字节流InputStream、OutputStream详解
字节流: (抽象基类)InputStream类(读): (抽象基类)OutputStream类(写): InputStream: 构造方法摘要 InputStream() ...
- angularjs transclude demo
<!doctype html> <html lang="en" ng-app="expanderModule"> <head> ...
- USACO Section 3.2: Stringsobits
这题看了网上的答案的.还是很巧妙的 /* ID: yingzho1 LANG: C++ TASK: kimbits */ #include <iostream> #include < ...
- USACO Section 2.4: The Tamworth Two
这题我是用蒙的方法来弄出最后的不能碰到的条件的(用1000试了下account跳出条件),结果竟然还过了,不过网上有精准的求出这个碰不到的条件,farm的状态为10*10*4 = 400,cow的状态 ...
- JAVA中的内部类使用总结
1) 内部类的优点是:内部类可以访问外部类的私有成员变量,而不需要new外部类的对象. 2) 内部类又分为:静态内部类.匿名内部类.局部内部类.成员内部类. 3) ...
- BZOJ 2751 容易题
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=2751 题意:有一个数列A已知对于所有的A[i]都是1到n的自然数,并且知道对于一些A[i ...
- 《OD学hadoop》第一周0625 LINUX作业一:Linux系统基本命令(一)
1. 1) vim /etc/udev/rules.d/-persistent-net.rules vi /etc/sysconfig/network-scripts/ifcfg-eth0 TYPE= ...
- $ is not defined错误类型
<script src='js/jtouch/jquery.js'></script> <script type="text/javascript"& ...