2016-04-07 76 views
3

よく私は200kファイルをアップロードするためにさまざまな方法を試しました。私が基本的なGoogleの検索は私の問題が行われていると私はスタックで読んだことを知っていたFuceiすべて、私の問題が行われていないが、写真は魅力のように動作します。サーバーはアップロード画像をサポートしています。私はPHPでこのタスクを行いますが、nodejsでロールしていない場合は、PHPで同じファイルを実行します。聞いてくれてありがとう。ノードjsのリクエストエンティティがmulterのアップロードで大きすぎます

私には私のコード

var express = require('express'); 
var app = express(); 
var http = require('http').Server(app); 
var bodyParser = require("body-parser"); 
var fs = require('fs'); 
var multer = require('multer'); 



var destino = '/var/www/upload/'; 
var upload = multer({dest: 'uploads/', 
    rename: function (fieldname, filename) { 
     return filename + Date.now(); 
    }, 
    limits: { 
     fieldNameSize: 200, 
     files: 5, 
     fields: 5 
    } 
}); 

app.use(bodyParser.urlencoded({extended: true})); 
app.use(bodyParser.json()); 




app.post('/image', upload.single('message'), function (req, res) { 


    var file = req.file; 
    fs = require('fs') 
    fs.readFile(file.path, 'base64', function (err, data) { 
     if (err) { 
      return console.log(err); 
     } 

/* do something if data*/ 
     fs.unlinkSync(file.path); 
    }); 

    }); 

http.listen(8080, function() { 
    console.log("Conectado e escutando na porta: 8080"); 


}); 

エラーショー、それはそれだ:エラー:要求エンティティ

大きすぎる
 at readStream (/var/www/likeyounode/node_modules/body-parser/node_modules/raw-body/index.js:196:17) 
     at getRawBody (/var/www/likeyounode/node_modules/body-parser/node_modules/raw-body/index.js:106:12) 
     at read (/var/www/likeyounode/node_modules/body-parser/lib/read.js:76:3) 
     at urlencodedParser (/var/www/likeyounode/node_modules/body-parser/lib/types/urlencoded.js:109:5) 
     at Layer.handle [as handle_request] (/var/www/likeyounode/node_modules/express/lib/router/layer.js:95:5) 
     at trim_prefix (/var/www/likeyounode/node_modules/express/lib/router/index.js:312:13) 
     at /var/www/likeyounode/node_modules/express/lib/router/index.js:280:7 
     at Function.process_params (/var/www/likeyounode/node_modules/express/lib/router/index.js:330:12) 
     at next (/var/www/likeyounode/node_modules/express/lib/router/index.js:271:10) 
     at expressInit (/var/www/likeyounode/node_modules/express/lib/middleware/init.js:33:5) 

は、私はすべての私のコードを見直し、証拠の量を表示するようにということだけが必要です私が望むことは、私のプロジェクトの多くを明らかにするでしょう。

身体にはいくつかの設定がありますが、気づいた場合はコンテンツに描かれていますが、自分のアプリケーションを実行している機能がすべてあるとは限りません。その場合は

https://www.npmjs.com/package/multer#limits

multer({ 
    storage: storage, 
    limits: { fileSize: maxSize } 
}) 

+0

マルター設定を設定していて、コードが不完全であるように見えません。 –

+0

私の解決策を試したことはありますか? :) – EMX

答えて

8

、私は(最も重要)Node.jsの(Webアプリケーション) var express = require('express'); var app = express(); var bodyParser = require('body-parser'); app.use(bodyParser.json({limit:'50mb'})); app.use(bodyParser.urlencoded({extended:true, limit:'50mb'}));

@上限を設定した後:それはオプションを見つけることができます です@nginx(webappリバースプロキシ) # Max upload size. client_max_body_size 50M;

2

私はあなたのコードのすべてではなく、単にエラーを見て、言うことができない、あなたは以下と身体のポストの大きさを設定することができるはずですあなたの問題を解決しない、bodyParserにも制限があります。私の場合は

https://github.com/expressjs/body-parser#limit

bodyParser({limit: '4MB'}); 
関連する問題