How do i get the content from a formData?

user2925894 picture user2925894 · Mar 14, 2014 · Viewed 27.4k times · Source

I have created a file into the formData like this:

    var fd = new FormData();
    fd.append('file', file);    

how do i get the content out of the formData? like the filename and the file? something like this?: fd.filename(), fd.getData(). or fd.get('file') to retrieve the file back?

Answer

mr2k picture mr2k · Mar 15, 2014

There is no way to retrieve the files after you've appended them in to a formData-object I believe.

You'll have to send the formData-object somewhere and then get the files from a req-object or something like that.

In my case (angularJS + nodeJS) I tested this from an answer on SO (link below):

Angular:

var fd = new FormData();
fd.append('file', file);
$http({
  method:"POST",
  url:"uploadFile",
  data: fd,
  withCredentials: true,
  headers: {'Content-Type': undefined },
  transformRequest: angular.identity
});

Node (expressJS):

app.post('/uploadFile', function(req,res){
  fs.readFile(req.files.file.path, function(err, data){
    // Do something with the data (which holds the file information)
  });
});

To see what you can do with the file, read this: http://nodejs.org/api/fs.html

The code is taken from : AngularJS: how to implement a simple file upload with multipart form?