Composr Tutorial: Providing downloads

Written by Chris Graham
Image

Adding a download category

Adding a download category

(Click to enlarge)

The download system is a system for the storage, organisation and distribution of files to visitors – specifically designed to be an effective tool on sites with very large numbers of downloads. A file in this system is called a Download.

Note that the download system is not intended for placing articles: there is a dedicated news/articles system for this. You may still use it to store articles if you prefer to, in formats such as PDF.


Setting up categories

In the download system, downloads are placed in categories, and categories together make up a tree (hierarchical) structure. When Composr is first installed there is just a single download category: the 'Home' category, which will be the 'parent' to the first new category ('child') you make. When you make a new category, you can choose a 'parent' of any existing category; by this structure, the tree is formed (by choosing a parent, you are essentially saying that your new category exists underneath it in the structure).

This tree principle applies to many areas of Composr: we strive to standardise things across our product to make things as consistent (hence, easy) as possible.

Download categories may have 'representative images'. When you are viewing a link to a category from its parent category, the representative image will be included.

Manage download categories from Admin Zone > Content > Downloads.
You can delete a download category from the bottom of its edit form. The root download category cannot be deleted, however.

Adding downloads (and editing/deleting)

Image

Do-next options are provided after adding a download, as is also the case when managing other Composr content

Do-next options are provided after adding a download, as is also the case when managing other Composr content

(Click to enlarge)

Image

Adding a download

Adding a download

(Click to enlarge)

Manage downloads from Admin Zone > Content > Downloads.

Upload vs URL

When you add a download you have a choice as to whether to specify a URL or to attach a file. There are other options actually, explained in more detail in the Advanced provision of downloads tutorial.

We recommend that you attach a file, as Composr can then manage it without risk of the URL being broken by something outside of the Composr control.

There is a caveat with this, however, as the web was not designed for uploading large files. Essentially, the web was designed to make fast requests for web pages: attaching a large file extends the request, and widens the window for transfer errors (HTTP uploads have no 'resume' mechanism, and no good way of easily finding it a transfer is actually proceeding other than checking for network usage).

In addition, PHP may not support large files (sometimes dropping POST information as well as the file, which makes Composr give an error message).

Therefore we recommend not to try attaching a file more than around 250MB in size. Larger files should be uploaded manually, and then the URL entered.

Security

Viruses

It is your responsibility to scan files for viruses, as Composr does not include a virus scanner. This is particularly relevant to those submitted for validation by users.

Protection from hackers

For an uploaded file, you will see upon edit that the filename of the actual on-disk file can not be determined from the URL. Composr stores the true filename in the database, but makes it so that people cannot circumvent the download system and download files directly. When an uploaded file is downloaded, it does not actually directly indicate for the user's web browser to download the URL, but rather, it is 'piped through' Composr so as to hide where it came from. This allows you to maintain your chosen permission scheme. In addition, Composr provides an anti-leech feature which stops people placing the direct download links on other websites.

Images

When you add a download, Composr automatically adds a specially-named gallery for it (if the galleries addon is installed). You will actually see a convenient 'add image' icon directly after adding the download, and you will also find an equivalent link on the download-view screen itself. The download gallery is displayed in-line, within the actual download-view screen. The Composr gallery system is used for adding and storage of the images. If you have no images added for the download yet there is a shortcut on the main download add/edit form for that; otherwise you can choose which of the images should also serve as the thumbnail for the download on the download add/edit form.

Accessing downloads

Image

Viewing a download

Viewing a download

(Click to enlarge)

Image

Our download, listed in its category

Our download, listed in its category

(Click to enlarge)

Image

The subcategory (where our download is being stored) is displayed

The subcategory (where our download is being stored) is displayed

(Click to enlarge)

Downloads are accessed from the downloads module (site:downloads page-link, Content > Downloads on the default menus).

This link will take the user to the Home download category, from which they can browse through the categories until they find a download they want.

We understand how important it is for users to be able to navigate fast around a website, so we have also created a 'view the whole download tree' feature that they may use to jump straight to the category of their choosing; this is not linked in by default, but can be placed on menus by browsing for it in the menu editor's entry-point tree. The data for the tree is downloaded in a very compressed format, making it fast to load.

Editing/Deleting a download

Image

Deletion options are presented on the edit screen, as is the standard in Composr

Deletion options are presented on the edit screen, as is the standard in Composr

(Click to enlarge)

Image

Editing a download

Editing a download

(Click to enlarge)

When you edit a download, you get a choice to replace the file.

You can delete a download from the bottom of its edit form.

When deleting a download you get the option to leave the actual file on the server. This is something you will rarely want to do, as it is best to just let Composr manage the files inside your upload directories; however it is useful in the rare case that you added a second download to use the URL of the download about to be deleted.

Composr will never try to delete a file that is not inside an upload directory, and naturally it cannot delete the file at any arbitrary URL or any file for which there aren't sufficient file permissions.

Searching inside downloads

User's may use the unified Composr searching system to find downloads that match their interests. i.e. downloads may be searched from the search module, or the search block.

In addition, the search module is able to search within the actual downloadable files. The following file types are supported for keyword extraction:
  • .pdf
  • .txt, .1st
  • .rtf
  • .xml
  • searching text buried within binary formats (e.g. .doc, .ppt)
  • searching for other file types within archive files (.zip, .tar, .gz)

Large files

If you're PHP build is 32 bit, files over 2GB are not supported.
If you're PHP build is 64 bit, files over 2GB are supported but the file size will not be displayed.


See also


Feedback

Please rate this tutorial:

Have a suggestion? Report an issue on the tracker.