File Uploader consists of the several components:
Hence, unlike other file uploaders, this File Uploader solves several tasks: it provides a library for client-server file upload interaction and a widget for a user to control the process from the browser. The first two components are a part of File Uploader Lite Edition, while all three components including Dialog UI are shipped in File Uploader Full Edition.
File Uploader allows uploading to the server absolutely any files: documents, music, images and so on. But depending on how you insert links to the uploaded files in the edited document, a different preset is used. Three presets are available: image, preview и file. When you open File Uploader using the dialog, you can change the preset by selecting the suitable one on the toolbar. With the dialogless version of the uploader, the preset cannot be changed during the uploading process.
Each preset has some default user options (for example, maximum width and height for images) The File Uploader dialog allows users to modify them during the uploading. All presets can be configured by including then to the default user options.
Allows selecting only images in the file selection dialog. Available user options are image width and height, file renaming. The render template by default generates the code for the image (the HTML tag "img") based on the final location on the server.
This preset allows selecting only images in the file selection dialog. Available user options are image width and heigh as well as preview width and height (the preview is generated automatically), and file renaming. The render template by default generates the code (HTML tag "img") for the preview wrapped to the code of the anchor (HTML tag "a") that points to the full-size image.
This is a versatile preset to upload arbitrary files. It does not restrict file types a user can upload. Available user options are file renaming. The default template is a link to the uploaded files (HTML tag "a").
The mechanism of transactions is extremely useful while completely transparent and not limiting your freedom. It does not require installing any database or specific third-party software and can work with the existing file structure. Here is how it works. Before commit, all files are stored in a temporary directory with a random transaction name chosen during initialization. The name of the directory is a key to its contents. A client that initialized the transaction receives the name of the directory as an ID, and sends that ID with all subsequent queries (uploading, deleting files, commit). This way the server controls access to files of different users. Read more about security here.
When using CKEditor/TinyMCE plugins you won't even notice transactions. Well, unless some failure happens, for instance if your computer lose connection. In this case File Uploader makes sure that everything you wanted to upload but interrupted by the failure will never ends up in the main file directory. In other words, the component follows the principle: "all files are uploaded, or no files are uploaded". This resolves a common issue when the storage gets cluttered, because before you can clean up the mess you must be sure that each particular file is not used somewhere on the website. No cluttering, no problem.