0

Going nuts trying to get past this. Should be trivial, but I'm obviously doing something stupid. Goal is to upload a file inside Express. In short request.files is coming back as undefined in my route handler :

//modules ==========================================

// ExpressJS 4.0 used for the middleware and web framework
var express = require('express');
var bodyParser = require('body-parser');
var session = require('express-session');
var cookieParser = require('cookie-parser');
var flash = require('connect-flash');
var jsxml = require("node-jsxml");
var XMLWriter = require('xml-writer');
var request = require("request");
var fs = require('fs');
var app = express();

app.set('views', __dirname + '/views');
app.use(express.static(__dirname + '/public'));

// Did I screw this up??!
app.use(bodyParser({keepExtensions:true,uploadDir: __dirname + '/public/uploads'}));

app.engine('html', require('ejs').renderFile);
app.use(cookieParser('Ronaldinho'));
app.use(session());
app.use(flash());

My file system:

enter image description here

Here's the form where a file is submitted (via a plugin called DropZone):

<div id="dropzone">
  <form action="/uploads" name="upload" class="dropzone" id="demo-upload" enctype="multipart/form-data" method="post">
   <input  type="file" name="theFile" />                                       
  </form>
</div>

and the handler for the route:

app.post('/uploads', function (request, response) {
   console.log('arrived');
   console.log('1st TEST: ' + (request.files));
    console.log('2nd TEST: ' + request.files.theFile.name);
    fs.readFile(request.files.theFile.path, function (err, data) {
        var newPath = "/home/path/to/your/directory/"+request.files.theFile.name;
        console.log (newPath);
        fs.writeFile(newPath, data, function (err) {
          res.send("hi");  
        });
    });
});

I hit the function above every time I upload a file, but find that request.files is undefined. Here's the result on the console (I'm using Brackets - interesting to me that I never even see the second test hit the console window...):

enter image description here

Any ideas what I'm screwing up?

Russell Christopher
  • 1,677
  • 3
  • 20
  • 36
  • 1
    possible duplicate of [File uploading with Express 4.0: req.files undefined](http://stackoverflow.com/questions/23114374/file-uploading-with-express-4-0-req-files-undefined) – mscdex Jul 26 '14 at 16:00
  • @mscdex gets the prize - the file I'm uploading can't be handled by bodyparse, busboy worked nicely. – Russell Christopher Jul 26 '14 at 16:13

0 Answers0