1

I have created a chat application in which I have kept file sending functionality over chat windows. Now I want to remove files from the server end when clients successfully download them. I'm using the MEAN stack.

router.post("/postChatFileSend",ensureAuthenticatedForPost,function(req,res) {

    if (req.body.fileName)
    {
        var filePath = __dirname + '/../public/ChatFile/'+req.body.fileName;
        fs.unlink(filePath, function (err) {
        })
    };

    return res.json({"status": true,"messages":"messages read sucessfully"});  
})

router.get('/downloadChatFile/:fileName',ensureAuthenticatedForPost, function(req, res) {

    var file = __dirname + '/../public/ChatFile/'+req.params.fileName;
    res.download(file); 
});
michele b
  • 1,825
  • 2
  • 20
  • 26
Tush Bedva
  • 67
  • 2
  • 12

1 Answers1

1

You can use jQuery File Download plugin for your purpose, it's a simple example you can use in your client for manage the downloaded file:

$.fileDownload('urlForYourFile')
    .done(function () { 
        alert('File download a success!'); 
        $.post('/postChatFileSend', {fileName: 'fileName'}, function(data) {
            //Check the response, if the status propery is true, the file must have been removed from the server 
        });
    })
    .fail(function() {
        alert('An error has ocurred');
    });

Here there are more examples

Borja Tur
  • 779
  • 1
  • 6
  • 20