1. var fs = require("fs");
  2. var http = require('http');
  3.  
  4. function PostFileToServer(sFileName, data, callback) {
  5. var boundary = "NODEJSPOSTFILE-" + (Math.random() * 9007199254740992).toString(36);
  6.  
  7. var sHeader = "--" + boundary + "\r\n";
  8. sHeader += "Content-Disposition: form-data; name=\"fileName\"; filename=\"" + sFileName + "\"\r\n";
  9. sHeader += "Content-Type: application/octet-stream\r\n\r\n";
  10.  
  11. var sEndData = "\r\n--" + boundary + "--\r\n\r\n";
  12.  
  13. var options = {
  14. hostname: "127.0.0.1",
  15. port : 3031,
  16. path : "/cgi-bin/upload?action=uploadFile&newname=my.jpg",
  17. method : 'POST'
  18. };
  19.  
  20. var httpreq = http.request(options, function (httpres) {
  21. httpres.on('data', function (dataResponse) {
  22. var response = JSON.parse(dataResponse);
  23. console.log(response.md5);
  24. console.log(response.name);
  25. });
  26. });
  27. httpreq.setHeader('Content-Type', 'multipart/form-data; boundary=' + boundary + '');
  28. httpreq.setHeader('Content-Length', Buffer.byteLength(sHeader) + data.length + Buffer.byteLength(sEndData));
  29.  
  30. httpreq.on('error', function(e) {
  31. console.log('problem with request: ' + e.message);
  32. callback(e);
  33. return;
  34. });
  35.  
  36. httpreq.write(sHeader);
  37. httpreq.write(data);
  38. httpreq.write(sEndData);
  39. httpreq.end();
  40. }
  41.  
  42. fs.readFile('1.jpg', function (err, data) {
  43. if (err) throw err;
  44. console.log(data.length);
  45.  
  46. PostFileToServer("1.jpg", data, function(){
  47. console.log("call back");
  48. });
  49. });
  1. {
  2. fileName:
  3. {
  4. domain: null,
  5. _events: {},
  6. _maxListeners: undefined,
  7. size: 595284,
  8. path: 'tmp\\upload_ba227eaf1015fda43ea4a218b2161748',
  9. name: '1.jpg',
  10. type: 'application/octet-stream',
  11. hash: null,
  12. lastModifiedDate: Sun Mar 08 2015 14:34:18 GMT+0800 (中国标准时间),
  13. _writeStream:
  14. {
  15. _writableState: [Object],
  16. writable: true,
  17. domain: null,
  18. _events: {},
  19. _maxListeners: undefined,
  20. path: 'tmp\\upload_ba227eaf1015fda43ea4a218b2161748',
  21. fd: null,
  22. flags: 'w',
  23. mode: 438,
  24. start: undefined,
  25. pos: undefined,
  26. bytesWritten: 595284,
  27. closed: true
  28. }
  29. }
  30. }

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. 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 ...

  2. C语言学习资料(转载)

    ◆经典C源程序100例:http://post.baidu.com/f?kz=8618367 ◆时钟的驻留程序:http://post.baidu.com/f?kz=10822377 ◆数据结构暨若干 ...

  3. Java:IO流之字节流InputStream、OutputStream详解

    字节流: (抽象基类)InputStream类(读): (抽象基类)OutputStream类(写):   InputStream: 构造方法摘要 InputStream()              ...

  4. angularjs transclude demo

    <!doctype html> <html lang="en" ng-app="expanderModule"> <head> ...

  5. USACO Section 3.2: Stringsobits

    这题看了网上的答案的.还是很巧妙的 /* ID: yingzho1 LANG: C++ TASK: kimbits */ #include <iostream> #include < ...

  6. USACO Section 2.4: The Tamworth Two

    这题我是用蒙的方法来弄出最后的不能碰到的条件的(用1000试了下account跳出条件),结果竟然还过了,不过网上有精准的求出这个碰不到的条件,farm的状态为10*10*4 = 400,cow的状态 ...

  7. JAVA中的内部类使用总结

    1)         内部类的优点是:内部类可以访问外部类的私有成员变量,而不需要new外部类的对象. 2)         内部类又分为:静态内部类.匿名内部类.局部内部类.成员内部类. 3)    ...

  8. BZOJ 2751 容易题

    题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=2751 题意:有一个数列A已知对于所有的A[i]都是1到n的自然数,并且知道对于一些A[i ...

  9. 《OD学hadoop》第一周0625 LINUX作业一:Linux系统基本命令(一)

    1. 1) vim /etc/udev/rules.d/-persistent-net.rules vi /etc/sysconfig/network-scripts/ifcfg-eth0 TYPE= ...

  10. $ is not defined错误类型

    <script src='js/jtouch/jquery.js'></script> <script type="text/javascript"& ...