Days
Hours
Minutes
Seconds
x

New Froala Editor v5.0.0 is here โ€“ Learn More

Skip to content
Froala Documentation

Node.JS File Server Delete

How it works

  1. Code intercepts the file removed from the editor.
  2. Removing a file sends to the server a request to delete the file from disk.
  3. Once the request reaches the server, it deletes the file.

Jump to Complete Example

Intercept file being removed

Removing a file from the editor triggers two events: froalaEditor.file.beforeRemove and froalaEditor.file.removed. You can use either of them to delete the file from the server, however it is recomended to use the second one, since at that point you make sure that the file was removed from the editable area.

Send request to the server

There is no built-in feature that makes the request to the server, however you can use an AJAX request.

<script>
  // Catch the file being removed.
  var editor = new FroalaEditor('selector');

  editor.opts.events['file.unlink'] = function (e, editor, file) {
    $.ajax({
      // Request method.
      method: 'POST',

      // Request URL.
      url: '/delete_file',

      // Request params.
      data: {
        src: file.getAttribute('href')
      }
    })
    .done (function (data) {
      console.log ('File was deleted');
    })
    .fail (function (err) {
      console.log ('File delete problem: ' + JSON.stringify(err));
    })
  }
</script>

Delete the file

TThe server implementation is responsible for receiving the request and handling it appropriately. The code on the previous step makes the file path available in the body of the request: request.body.src. The FroalaEditor.File.delete() method from the Node.JS SDK expects the path of the file to remove from disk.

Note: The path of the file is relative to the root of your application.

FroalaEditor.File.delete(req.body.src, function(err) { ... });

Complete Example

<script>
  // Catch the file being removed.
  var editor = new FroalaEditor('selector');

  editor.opts.events['file.unlink'] = function (e, editor, file) {
    $.ajax({
      // Request method.
      method: 'POST',

      // Request URL.
      url: '/delete_file',

      // Request params.
      data: {
        src: file.getAttribute('href')
      }
    })
    .done (function (data) {
      console.log ('File was deleted');
    })
    .fail (function (err) {
      console.log ('File delete problem: ' + JSON.stringify(err));
    })
  }
</script>
var express = require('express');
var app = express();
var bodyParser = require('body-parser')
var path = require('path');
var fs = require('fs');
var FroalaEditor = require('PATH_TO_FROALA_SDK/lib/froalaEditor.js');

app.use(express.static(__dirname + '/'));
app.use('/bower_components',  express.static(path.join(__dirname, '../bower_components')));
app.use(bodyParser.urlencoded({ extended: false }));

// Listen to the delete request.
app.post('/delete_file', function (req, res) {
  // Do delete.
  FroalaEditor.File.delete(req.body.src, function(err) {
    if (err) {
      return res.status(404).end(JSON.stringify(err));
    }

    return res.end();
  });
});

Do you think we can improve this article? Let us know.

Sign up

Download the code by signing up for our newsletter

Sign up

Download the code by signing up for our newsletter

Note: By registering, you confirm that you agree to the processing of your personal data by Froala, Inc. - Froala as described in the Privacy Statement. Froala, Inc. - Froala is part of the Idera group and may share your information with its parent company Idera, Inc., and its affiliates. For further details on how your data is used, stored, and shared, please review our Privacy Statement.