2016-07-19 16 views
1

"client.js"にファイルを読み込み、HTTP POSTを使用して "server.js"経由で特定のフォルダにアップロードします。ファイルサイズが小さい場合(1kb)、動作します。しかし、ファイルサイズが大きければ(おそらく約100kb)、それは動作しません。エラーはありませんが、格納されているイメージのサイズは、想定されているサイズよりも小さくなります。どうしてか分かりません。助けてください。nodejsアップロードファイルHTTP POST

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'); 

事前にありがとうございます。 req.file //access file info

+0

を、あなたは([busyboy]使用することができますhttps://www.npmjs.com/package/connect-busboy)をアップロードするには、私は自分のプロジェクトでそれを使用しています。私は自分のアプリケーションで大きなサイズの画像を扱います。 –

答えて

1

あなたはmulter、それは自動的にファイルを保存するmultipart/form-dataを処理し、REQ変数を移入するミドルウェアを使用することができます。この種の作業を抽象化する多くの機能があります。あなたは、ファイルのサイズ、フィルタファイルや他の多くの施設、私は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'); 
+0

コメントありがとうございます。私は、あなたが言ったように私は 'multer'を使うべきだと思います。しかし、ちょうど私のコードで何が間違っているのか不思議に思った。問題を説明できる人はいますか? – user6607973