2013-11-03 24 views
2

我有一个快速的应用程序,需要处理文件上传,但由于某种原因,它不工作。我得到一个神秘的错误消息(都nodejitsu /本地),我不知道什么是错的。快速文件上传返回400错误

这里是我的路线:

var routes = require('../routes'); 

module.exports = function(app) { 
    app.get('/', routes.index); 
    app.get('/import', routes.import.form); 
    app.post('/import/upload', routes.import.submit); 
}; 

这里是我的功能:

exports.import = { 
    form: function(req, res) { 
     renderTemplate(res, 'form'); 
    }, 
    submit: function (req, res) { 
     res.send(console.dir(req.files)); 
    } 
} 

这里是我的HTML:

<form role="form" action="/import/upload" method="post" enctype="multipart/form-data"> 
    <div class="form-group"> 
    <label for="exampleInputFile">Upload</label> 
    <input type="file" id="csvFile"> 
    <p class="help-block">Please select .csv file.</p> 
    </div> 
    <button type="submit" class="btn btn-default">Submit</button> 
</form> 

这里的错误消息:

Error: Expected CR Received 45 
at Form._write (/opt/run/snapshot/package/node_modules/express/node_modules/connect/node_modules/multiparty/index.js:187:49) 
at doWrite (/opt/run/snapshot/package/node_modules/express/node_modules/connect/node_modules/multiparty/node_modules/readable-stream/lib/_stream_writable.js:262:12) 
at writeOrBuffer (/opt/run/snapshot/package/node_modules/express/node_modules/connect/node_modules/multiparty/node_modules/readable-stream/lib/_stream_writable.js:249:5) 
at Form.Writable.write (/opt/run/snapshot/package/node_modules/express/node_modules/connect/node_modules/multiparty/node_modules/readable-stream/lib/_stream_writable.js:196:11) 
at write (_stream_readable.js:583:24) 
at flow (_stream_readable.js:592:7) 
at _stream_readable.js:560:7 
at process._tickCallback (node.js:415:13) 

回答

11

您的input[type=file]没有name属性,该属性使Express/Connect变得紊乱。

那么试试这个:

<input type="file" id="csvFile" name="csvFile"> 
+0

感谢这个小而重要的信息。你救了我的一天......与此挣扎了好几个小时...... – user1102171

+0

你是英雄! – tpae

+0

@robertklep:有没有什么办法可以正确处理这种情况?我不想向用户显示此错误。我在我的REST API中遇到了这个问题。 – 2014-01-18 14:39:28