nodejs上传文件HTTP POST

时间:2016-07-19 12:41:47

标签: node.js

我希望“client.js”读取文件,并使用HTTP POST通过“server.js”将其上传到某个文件夹。当文件大小很小(1kb)时,它可以工作。但是当文件大小更大(可能大约100kb)时,它无法正常工作。没有错误,但存储的图像尺寸小于它应该的尺寸。我不知道为什么。请帮忙。

1.client.js

var fs = require('fs');
var http =  require('http');

postData = null;

postData=fs.readFileSync("test.jpg")

if(postData!=null){

var options = {
  host: 'localhost',
  port: 10730,
  method: 'POST' 
};

var clientRequest = http.request(options);
clientRequest.end(postData);}

2.server.js

 var http =  require('http');
 var fs = require('fs');

 var server = http.createServer((req,res)=>{
   req.on('data', (chunk)=>{
   fs.writeFile('testcopy.jpg',chunk)})
   req.on('end', ()=>{
   console.log("end")
 })})
 server.listen(10730,'localhost');

提前谢谢。

1 个答案:

答案 0 :(得分:1)

您可以使用multer,一个处理multipart/form-data的中间件,它会自动为您保存文件并填充req变量: req.file //access file info。它有很多功能可以抽象出这种工作。你可以定义文件的大小,过滤文件和许多其他设施,我知道multer很容易使用,并且可以使用express作为中间件,但我想你可以试试这个:

var http =  require('http');

var server = http.createServer((req,res)=>{
   upload(req, res, function (err) {
     if (err) {
        // An error occurred when uploading
        return
     }
     console.log('end')
      // Everything went fine
   })
})
server.listen(10730,'localhost');