The Shared Files feature included in mojoPortal content management system allows one to securely share files with their users.
The Shared Files module looks to the user identical to the File Manager module. The difference is that the File Manager module provides direct access to the file system on the web server and should only be available to trusted server administrators.
All the files are stored in a specific folder /Data/Sites/(SiteID)/SharedFiles and the files are named with a guid string and a .config extension while the friendly name and the folder hierarchy is maintained in the database. Naming the files on disk with a guid string makes it impossible or at least extremely difficult to guess the file name and the .config extension makes it impossible to retrieve just using an http request because ASP.NET is designed not to serve files with a .config extension.
When a Shared Files module is placed on a page, users in roles that have permissions to view the page can download the files because the module is configured to serve them using Response.WriteFile and converts the file name back to the friendly name on the way. User's in roles that can edit the module are able to upload files and create folders etc.
Uploading & Managing Files
Files must be uploaded using the Shared Files interface. You can not manually copy files to your server for use by the Shared Files module. The module uses NeatUpload to facilitate uploading multiple files at once. Since the files are stored using a guid string for the name, it is perfectly legit to have multiple files with the same friendly name if you upload them independently. If you want to change the exisiting file, you can edit it and it will keep a version history so that if you upload a new replacement file, the previous version is archived in the folder /Data/Sites/(SiteID)/SharedFiles/History. It is also possible to download previous versions or revert to previous versions of the file.
By default, only 10 files are allowed to be uploaded at one time. If you want to change this, add the following key to your user.config and then touch the web.config.
<add key="SharedFiles:MaxFilesToUploadAtOnce" value="10"/>
File names and descriptions are indexed by the mojoPortal CMS search engine but file contents are not. The Site Search feature of mojoPortal has an option to allow filtering search results to only show Shared Files.