0

So, when I upload file it doesn't me show any error, it just doesn't upload the file and I get the message '0 files uploaded successfully, I do get the record in database for each uploaded item

So, here's the input form

<form action='./make' method="post">
<input type="file" name="vid"> <br>
<input type="text" name="name"> <br>
<input type="hidden" name="_csrf" value="<%= _csrf %>">
<input type="hidden" name="ownerID" value="<%= req.session.User.id %>">
<input type="submit" value="add video">
</form>

And this is the 'make' action:

    make: function (req, res, next) {
    Video.create(req.params.all(), function videoCreated (err,video) {
        console.log("create video");
        //  if(err) return next(err);
        req.file('vid').upload({
            dirname: './assets/images'
        }, function (err, uploadedFiles) {
            if (err) return res.negotiate(err);

            return res.json({
                message: uploadedFiles.length + ' file(s) uploaded successfully!'
            });
        });

    if(err){
        console.log(err);
        req.session.flash = {
            err: err
        }
        return res.redirect('/user/new');
    }

});
}
Bro
  • 1

1 Answers1

0

Try with this:

index.ejs

<form enctype="multipart/form-data" action="epale" method="post">
  <input type="file" id="archivo" name="archivo">
  <input type="submit" value="Enviar">
</form>

IndexController.js

epale: function (req, res) {
    //return res.send('Hi there!');
    if (req.method === 'GET')
        return res.json({ 'status': 'GET not allowed' });
    //  Call to /upload via GET is error

    var uploadFile = req.file('archivo');
    console.log(uploadFile);

    uploadFile.upload({
      dirname: '../../assets/images',
      saveAs: function(file, cb) {
        cb(null, file.filename);
      }
    }, function onUploadComplete(err, files) {
        //  Files will be uploaded to .tmp/uploads

        if (err) return res.serverError(err);
        //  IF ERROR Return and send 500 error with error

        console.log(files);
        res.json({ status: 200, file: files });
    });
  },

routes.js

'/': {
    view: 'homepage'
  },
  '/index': {
    view: 'index'
  },
  '/epale': {
    controller: "Index",
    action: "epale",
  },

Revised (05-11-2016) in: http://maangalabs.com/blog/2014/08/12/uploading-a-file-in-sails/