node通过http.request向其他服务器上传文件

Posted Sorrow.X

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了node通过http.request向其他服务器上传文件相关的知识,希望对你有一定的参考价值。

function upload(callback) {
    let boundaryKey = \'----\' + new Date().getTime();    // 用于标识请求数据段
    let options = {
        host: \'localhost\', // 远端服务器域名
        port: 80, // 远端服务器端口号
        method: \'POST\',
        path: `/upload`, // 上传服务路径
        headers: {
            \'Content-Type\': \'multipart/form-data; boundary=\' + boundaryKey,
            \'Connection\': \'keep-alive\'
        }
    };
    let req = http.request(options, function(res){
        res.setEncoding(\'utf8\');

        res.on(\'data\', function(chunk) {
            console.log(\'body: \' + chunk);
        });

        res.on(\'end\', function() {
            console.log(\'res end.\');
        });
    });
    /*req.write(
         \'--\' + boundaryKey + \'rn\' +
         \'Content-Disposition: form-data; name="upload"; filename="test.txt"rn\' +
         \'Content-Type: text/plain\'
     );*/
    req.write(
        `--${boundaryKey}rn Content-Disposition: form-data; name="${self.path}"; filename="${self.file}"rn Content-Type: text/plain`
    );

    // 创建一个读取操作的数据流
    let fileStream = fs.createReadStream(this.filePath);
    fileStream.pipe(req, {end: false});
    fileStream.on(\'end\', function() {
        req.end(\'rn--\' + boundaryKey + \'--\');
        callback && callback(null);
    });
}
参考地址: http://blog.csdn.net/haiyan2012/article/details/8540802
http://www.cnblogs.com/king_domain/p/5630665.html

以上是关于node通过http.request向其他服务器上传文件的主要内容,如果未能解决你的问题,请参考以下文章

Node.js中的http.request方法的使用说明

使Node.js中的http.request适用于浏览器

Node.js http.request 失败并显示 [错误:getaddrinfo EADDRINFO]

如何在 Node 中的 http.request() 上设置超时?

谈一谈Http Request 与 Http Response

HTTP: Request中的post和get区别