Question

I have an express app that needs to handle file upload, but for some reason it's not working. I am getting a cryptic error message (both nodejitsu/local), I have no clue what's wrong.

Here's my routes:

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

Here's my functions:

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

Here's my 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>

Here's the error message:

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)
Était-ce utile?

La solution

Your input[type=file] doesn't have a name attribute, which upsets Express/Connect.

So try this:

<input type="file" id="csvFile" name="csvFile">
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top