fileNice – a PHP-based file browser

fileNice - a free PHP-based file browserWhile working on one of my Web sites the other day, I had the need to install some sort of file browsing script that would allow the user to choose a particular file, then insert a link using TinyMCE.

I realize that MCEFileManager is available, but it is commercial software, and I was really looking for something free.

I happened across a script called fileNice. It’s a pretty nice file browser and is extremely simple to use. There are quite a few things I probably would have done differently had I written the script, but it works pretty well, and it took me about five minutes to install and configure rather than five weeks (or months) writing my own full-featured file browser.

Pros

fileNice is coded completely with relative URLs, so that you can move the script wherever you want on your Web server (provided you move all of the required files – of which there are only seven, plus some icon images – and keep the directory structure in tact), and you can change the name of the main script file to whatever you want, and it will still work.

fileNice automatically previews image files when you click on them, it is capable of creating dynamic slideshows within a directory and is capable of displaying a good deal of meta information about each file.

You can easily configure the script to ignore specific files and specific directories.

fileNice accepts allows you to divide files into five different categories, and you can specify the file extensions that belong in those categories. The categories are:

  • Images
  • Embeddable files (like Flash, etc.)
  • HTML/text files
  • Script files (PHP, JS, etc.)
  • Miscellaneous

The list of file extensions for each of those types is simply stored as a PHP array, so if you only want to show one or two of those file types in your browser, you can unset the other arrays and they won’t be visible to the public.

Provided that they are not listed in the exclusion list, fileNice also allows users to navigate into subdirectories.

Cons

fileNice only works within the directory in which it’s installed. If you want to allow users to browse more than one directory on your server, you need to install multiple copies of fileNice. There doesn’t seem to be any way to use a central installation of fileNice and simply provide it with specific directory path information to have it show the contents of that directory.

In addition, some of the code has been deprecated in PHP 5, so, depending on the level of error reporting you have configured on your server, you may see PHP errors all over the place when trying to use the script. The fixes are fairly easy, if you know how to use PHP.

Finally, when you actually decide to open one of the files inside of the browser, the path it uses to access that file is kind of screwy. For instance, if I wanted to view http://www.example.com/images/icon.jpg, fileNice would actually use http://www.example.com/images/./icon.jpg as the address.

Missing Features

There are also one or two features I would like to see in fileNice. First of all, it would be nice if you could specify whether you want to use a system of inclusion or exclusion when determining which directories, files and/or file types you want to show. As mentioned above, you can specify a list of the directories and files you want to exclude from the browser and you can specify a list of the file types you want to include, but you can’t do either the other way around.

At this time, that’s about the only major issue I can think of. Other than that, the script does a really nice job of what it’s supposed to do.

If you want to play with fileNice a little bit, you can try the demo on the fileNice Web site. If you want to download it, you can grab it from the fileNice site.

Did you like this post? Get monthly summary of our new tutorials, posts and tips to your inbox!

One Response

  • nitin

    Hi may i know whats the procedure to install it….i am not able to find any documentation in relation to it

Post Your Comment

Your email address will not be published.