# Uploader with Progress Bar, File Manager & Multi-User Support

Your clients need to send files to you.  Don't make them jump through hoops.  With FileChucker on your website, they can easily upload files directly to you — no middleman required.

## Overview

• Uploader with progress bar, file manager & multi-user support
• Fully customizable with your own logo, text, etc
• Bypasses all PHP upload limits
• Quick & easy installation
• Free tech support
• Much more...
• Great for Audio Engineers, Print Shops, and anyone who needs to send, receive, or share files!

## Contents

FileChucker is an AJAX-based web application that lets you accept file uploads on your own website.  It's simple to install, packed with features, fully configurable, nice looking, and very handy for when you want to share files with anyone, or accept files from anyone.  And during uploads FileChucker shows a progress bar & table, so the user knows how much time is left before the upload is complete.

FileChucker can also function as a full-fledged online file manager for your server: it can allow moving/renaming/deleting of uploaded files & folders right in the browser.  Of course these features are configurable and password-protectable so you can customize FileChucker however you'd like.

FileChucker works in all major browsers (Firefox, Safari, Chrome, IE, Opera), and runs on virtually any server, with no programming required.  We recommend Dreamhost, and we also like Bluehost and Media Temple, but we've installed FileChucker many times on just about every host out there.  And FileChucker integrates easily into WordPress, Joomla, and any other PHP page, yet it also allows you to upload huge files — working around PHP's upload size limits — because it's written in Perl rather than PHP.

## Live Demo

You can try out the FileChucker Live Demo right now.

## Features

• Easy integration with WordPress, Joomla, and any other PHP page on your site
• Works around PHP's upload size limitations, allowing huge uploads on most servers
• Share files that are too large for e-mail by simply uploading them and then sending the link to your friend; or be your own personal cloud to access your files anytime, anywhere
• Real-time progress bar and time elapsed/remaining during uploads
• Built-in password protection: two separate passwords allow "admin" and "member" access levels without usernames; or, integrate with UserBase or your site's existing login system
• If you don't want to bother with passwords at all, FileChucker can also be configured to automatically create a private directory for each upload, perfect for single-use uploads; the private directory is optionally re-usable for new uploads by the user who created it
• Integrates with CornerStore so you can quickly and easily sell products and services based on your uploaded files
• E-mail notification of new uploads; can be sent to the webmaster and/or to the person performing the upload
• Create, move, rename, and delete files/folders on your server through the browser, functioning as a web-based FTP system or FTP replacement
• Multiple folders/subfolders for uploads, optionally user-creatable
• Can function as a photo gallery script, with automatic image thumbnailing, image rotation, and a grid-layout display of your photo albums and thumbnails
• Supports custom folder permissions so you can specify read-only or read-write access for users/groups on a per-folder basis
• Can automatically rename all uploaded files to remove any "unfriendly" characters, append a time/datestamp, or rename to a completely custom format that you specify
• Logs information about each upload, like uploader's IP address, hostname, browser & operating system
• You can configure unlimited custom form fields anywhere on the upload form, so your users can enter comments or information about the file(s) they're uploading; supports text fields, radio buttons, checkboxes, drop-down lists
• Can integrate with your site's login framework to store each user's uploads in his own directory automatically, and after an upload, can redirect to a page that you specify
• Restrict what kinds of files can be uploaded and/or displayed based on file extension
• Has a built-in human test to prevent spambot abuse (sometimes called a CAPTCHA system; "CAPTCHA" is (TM) by Carnegie Mellon University)
• Works on a standard server or a secure server (https://)
• Supports i18n and l10n (internationalization and localization) in most areas of the application, so it can be translated into other languages by simply modifying the settings containing the text strings
• Adjustable max upload size (in bytes), up to as large as your server can support (typically multiple gigabytes)
• Adjustable user quotas
• Can upload one or multiple files, up to whatever limit you specify
• Fully customizable via preferences that you can adjust
• Check out the preferences file in the free version to see some of the adjustable features and documentation.

## Quick Instructions for Most Servers (Apache on Linux, Mac OS X, BSD)

Unzip your filechucker.zip file, and then upload the contents of the www.example.com folder onto your website.  Then visit the following address, replacing example.com with your own domain name:

www.example.com/cgi-bin/filechucker.cgi

If that works, then FileChucker is installed properly.  You should now read the FAQ.

If nothing works, read the full instructions.

## Quick Instructions for Apache-on-Windows Servers

Other than Apache itself, the only thing that's strictly required is Perl.  If your server doesn't already have Perl installed, download and install the free ActivePerl.  You may need to reboot after installing it.  Open a command prompt and type   perl -v   and if you get some output about Perl and its version info, you should be all set.

If you had to install Perl, you may also want to install the DBD::MySQL Perl module (if you want to use any of FileChucker's optional database-based features), and the MIME::Lite, MIME::Base64, and Authen::SASL modules (if you want to use any of the email features), by opening the Run dialog or a command prompt and then typing ppm install DBD-mysql (or ppm install MIME-Lite etc).  Or you can run just the ppm command by itself to use the graphical installer.

Now follow the regular Apache instructions.

## Quick Instructions for IIS-on-Windows Servers

If your server doesn't already have Perl installed, download and install the free ActivePerl.  You may need to reboot after installing it.  Open a command prompt and type   perl -v   and if you get some output about Perl and its version info, you should be all set.

If you had to install Perl, you may also want to install the DBD::MySQL Perl module (if you want to use any of FileChucker's optional database-based features), and the MIME::Lite, MIME::Base64, and Authen::SASL modules (if you want to use any of the email features), by opening the Run dialog or a command prompt and then typing ppm install DBD-mysql (or ppm install MIME-Lite etc).  Or you can run just the ppm command by itself to use the graphical installer.

Unzip your filechucker.zip file, then open the www.example.com folder and move the contents of the cgi-bin folder into the upload folder.  Then delete the cgi-bin folder.  Upload the "upload" folder onto your website, then visit the following address, replacing example.com with your own domain name:

If that works, then FileChucker is installed properly.  You should now read the FAQ.

If nothing works, read the full instructions.

## Full Instructions for Most Servers (Apache on Linux, Mac OS X, BSD)

Also available: instructions for IIS/Windows and Apache/Windows
Want us to install it for you?  Just purchase the FileChucker Installation Package.  We also provide customization and integration services -- just ask!

Note I: Do not edit the filechucker.cgi file unless absolutely necessary; instead, edit filechucker_prefs.cgi for all your customizations.

Note II: if you are using Windows on your desktop, and when you open the *.cgi file, the lines all appear to be crunched together, try opening it in Wordpad (not Word) instead.  In Wordpad, save the file; this should fix the line-endings so the file's contents appear correctly in other editors like Notepad.

1. First, complete the quick instructions.
2. Set the permissions on /cgi-bin/filechucker.cgi (aka, chmod it) to world-readable and world-executable, that is, a+rx or mode 0755.  Do NOT use 0777.
3. Set the permissions on the /cgi-bin/encdata/ directory to world-readable, -writable, and -executable, that is, a+rwx or mode 0777.
4. Set the permissions on the /upload/files/ directory to world-readable, -writable, and -executable, that is, a+rwx or mode 0777.
5. Now visit yoursite.com/cgi-bin/filechucker.cgi in your browser and FileChucker should be working properly.
6. If you get an Internal Server Error, it's most likely a permissions problem.  See this page for more details.
7. Read the FAQ.

Now FileChucker is ready to run, and you can access it by going to yoursite.com/cgi-bin/filechucker.cgi (or yoursite.com/upload/ if your server supports it).

## Full Instructions for Apache-on-Windows Servers

Also available: instructions for Apache/[Linux|Mac|BSD] and IIS/Windows
Want us to install it for you?  Just purchase the FileChucker Installation Package.  We also provide customization and integration services -- just ask!

Note I: Do not edit the filechucker.cgi file unless absolutely necessary; instead, edit filechucker_prefs.cgi for all your customizations.

Note II: if you are using Windows on your desktop, and when you open the *.cgi file, the lines all appear to be crunched together, try opening it in Wordpad (not Word) instead.  In Wordpad, save the file; this should fix the line-endings so the file's contents appear correctly in other editors like Notepad.

1. First, complete the quick instructions.
2. Now visit yoursite.com/cgi-bin/filechucker.cgi in your browser and FileChucker should be working properly.
3. If it doesn't execute or you get errors, you may need to change the first line of the filechucker.cgi file from #!/usr/bin/perl to either #!perl or #!c:\path\to\perl.exe
4. If it doesn't execute or you get errors, you may need to rename the script and its prefs file from a .cgi extension to a .pl extension.
5. If you get errors about FileChucker being unable to delete something from the encdata or files folder, you may need to set a "Delete" bit on the folder's properties.
6. Read the FAQ.

Now FileChucker is ready to run, and you can access it by going to yoursite.com/cgi-bin/filechucker.cgi (or yoursite.com/upload/ if your server supports it).

## Full Instructions for IIS-on-Windows Servers

Also available: instructions for Apache/[Linux|Mac|BSD] and Apache/Windows
Want us to install it for you?  Just purchase the FileChucker Installation Package.  We also provide customization and integration services -- just ask!

Note I: Do not edit the filechucker.cgi file unless absolutely necessary; instead, edit filechucker_prefs.cgi for all your customizations.

Note II: if you are using Windows on your desktop, and when you open the *.cgi file, the lines all appear to be crunched together, try opening it in Wordpad (not Word) instead.  In Wordpad, save the file; this should fix the line-endings so the file's contents appear correctly in other editors like Notepad.

1. First, complete the quick instructions.
2. Now visit yoursite.com/upload/filechucker.cgi in your browser and FileChucker should be working properly.
3. If it doesn't execute or you get errors, you may need to complete one or more of the following steps (most are not necessary on most IIS servers, so try one at a time):

Rename the script and its prefs file from a .cgi extension to a .pl extension.

Change the first line of the filechucker.cgi file from #!/usr/bin/perl to either #!perl or #!c:\path\to\perl.exe

For the /upload/encdata and /upload/files folders, do the following: right-click on the folder, choose Properties, and go to the Security tab.  Find or add the IUSR_computername account, and give it "Full Control".  This account is sometimes called the Internet Guest Account.

Run the inetmgr command and change the CGI web service extension from "prohibited" to "allowed".  If your Web Service Extensions list doesn't include an item for Perl CGI scripts, then add a new one (named something like "Perl CGI", or "CGI Scripts", etc -- the name is not important), and for its "Required Files", enter C:\Perl\bin\perl.exe "%s" %s (adjust the path as necessary for your Perl installation)

Run the inetmgr command and right-click on the website and choose Properties.  Go to the "Home Directory" tab, then to "Application Settings", and set "Execute permissions" to "Scripts and Executables".

Run the inetmgr command and go to "Application Settings" then "Configuration", and add an application extension for .cgi (and .pl) with the executable set to: C:\Perl\bin\perl.exe "%s" %s (adjust the path as necessary for your Perl installation)

Run the inetmgr command and right-click Default Web Site (or your site's name, if different).  Then click New -> Virtual Directory and follow the prompts, entering "upload" as the name of the virtual directory, and choosing FileChucker's upload folder (c:\inetpub\wwwroot\upload\ by default) for the path.  For Access Permissions, check (enable) the Read, Run Scripts, and Execute boxes.  When finished, right-click the new virtual directory and choose Properties -> Application Configuration -> Mappings, and make sure there's a .cgi (and/or .pl) extension there, mapped to the C:\Perl\bin\perl.exe "%s" %s command (or your server's path to perl.exe).

If you get errors about FileChucker being unable to delete something from the encdata or files folder, you may need to set a "Delete" bit on the folder's properties.

Create the c:\temp\ folder if it does not exist; if this isn't possible, and you get errors or failures when you try to upload files, then set $PREF{disable_upload_hook} = 'yes' in filechucker_prefs.cgi. 4. (Optional; recommended) You may want to disable directory-listing for your /upload/ directory; you can do this through inetmgr. 5. (Optional; recommended) If your server runs PHP, then you should disable it for your /upload/files/ directory, so that visitors can't upload PHP applications and modify the files on your server. (FileChucker does disallow the uploading and listing of dangerous file extensions including .php by default, but disabling PHP execution for your uploads folder will further strengthen your installation's security.) 6. (Optional) To increase IIS's CGI timeout, which will prevent large uploads if set to a low value, you need to set the "CGITimeout" metabase value to a large number, like 5000 or 10000 or more. There are several ways to adjust this value. One is to use the Metabase Explorer, from the IIS Resource Kit. Another is to run the inetmgr command, right-click "Local Computer", choose Properties, then check "Enable Direct Metabase Edit"; then edit the file c:\windows\system32\inetsrv\metabase.xml in a text editor (you may need to use Notepad, not Wordpad), find the CGITimeout setting, and change it to a larger value. 7. (Optional) FileChucker's image features (thumbnails, rotation) require an image-processing library like GD or ImageMagick. To install the GD Perl module, open a command prompt and run the command ppm install http://theoryx5.uwinnipeg.ca/ppms/GD.ppd or ppm install http://cpan.uwinnipeg.ca/PPMPackages/10xx/GD.ppd one of which should work depending on your version of Windows and ActivePerl. To install ImageMagick, go to www.imagemagick.org and download & install the binary release for Windows. Then read this FAQ item for instructions on setting$PREF{convert_command}.
8. Read the FAQ.

Now FileChucker is ready to run, and you can access it by going to yoursite.com/upload/filechucker.cgi (or yoursite.com/upload/ if your server supports it).

## Performance

First, it should be noted that FileChucker itself imposes no limits on the amount of data that can be transferred (except whatever limit you specify in your setting for \$PREF{sizelimit}).  FileChucker also does not place any limit on the speed of an upload.  If you are having trouble with uploading large files, or with uploads going really slow, the problem is in your network, or somewhere else in your server's hardware or software configuration.  Many FileChucker users on many platforms (Windows, Linux, IIS, Apache, OS X Server) are uploading files sized in the hundreds of megabytes, so the problem is not within FileChucker.

In a test upload of a 700MB file across a 100mbit LAN, the transfer ran at about 5MB/sec, requiring about 2.5 minutes to complete.  After the actual data-transfer was complete, the server spent ~50 seconds processing the file (CGI.pm's internal processing) before the script finished running. (FileChucker now has the ability to avoid this extra processing time altogether, as long as your server is running a relatively recent Perl distribution.)  The server was a Dell Dimension 1100 desktop system, with an Intel Celeron 2.53GHz CPU (256 KB cache, 5061.56 bogomips), 512MB RAM, 1GB swap, and a standard 7200RPM ATA IDE disk.  The server was running Apache 2.0.54 with a fairly standard installation.  During the upload, the server's RAM and swap usage did not increase significantly (probably a few KB or a few tens of KB), because the uploaded file got streamed to disk (to a temporary file) by CGI.pm.  This is why the server needed to spend ~50 seconds processing the file after the upload was complete: it was decoding the raw POST data from the temporary file into the actual final destination file.  (Again, FileChucker no longer needs to do this.)

In a second test upload on the same server as above, a 1.4 gigabyte file took about 5 minutes to upload, and when the data finished transferring, the server spent just under 2 minutes doing POST-processing before the script finished.

If you want to upload files larger than 2 gigabytes, then you can't use Apache 1.3.x or 2.0.x.  You need to use Apache 2.2.x, as explained on the "New Features in Apache 2.2" page:

### Large File Support

httpd is now built with support for files larger than 2GB on modern 32-bit Unix systems.  Support for handling >2GB request bodies has also been added.

## Support

If you need any help with FileChucker, please complete the following steps in order:

1. Make sure you've followed the installation instructions.
2. Make sure you've read the FAQ.
3. If you're getting an Internal Server Error, read the Internal Server Error page.
4. If you're getting errors about missing Perl modules, read the installing Perl modules page.
5. The troubleshooting page has some FileChucker-specific solutions that may help.
6. If you still need help, you can contact us.  Be sure to send us the full URL to the script on your server.

# Shopping Cart

Your cart is empty.

# Client Quotes

Do you know how rare it is to have a "canned" shopping cart that can easily do complex pricing options on a single item?  Basically, they don't exist!  I have looked.  Everywhere!  And the few that might even come close to CornerStore's functionality cost a fortune!
– Tashina P.
FileChucker is a great drop-in solution for file uploads, and worth every penny of its very reasonable cost.  Encodable's support is excellent to boot.
– Loren A.
The amount of customization in the program is incredible.  I was able to integrate it into my existing page layout relatively simply.  I was also able to easily customize the look/feel to match the current site.
– Jason M.
I just wanted to say that yours is the first product that I've tested so far that hasn't failed on handling uploads.  This is going to work for a print company, so they are handling nothing but large files and all the other solutions I've tried so far have not been reliable.  So far yours has been 100% successful in my tests.
– Kevin H.
Nice script, it's saving the day on our project.
– Aaron W.
I just want to say you guys really stand alone in that you have a quality product and you provide genuine customer service.  It's sad but those qualities are seldom found separately, much less together.  Thanks again for your time and help.
– Alex S.
I just installed the demo of your product and got it up and running in no time.  I searched high and low for a decent login script and thank God I found yours.
You've done a wonderful job with FileChucker and UserBase, and they have made a big difference to how our website runs.
– Nicholas H.
The work, the thought and the organization you put into this app is incredible.
– Bruce C.
FileChucker is helping drive the backend of several high profile entertainment sites for people like Shania Twain and Dolly Parton.  We're also using it to drive backend file uploads for a multi-billion dollar banking institution.  It's a great product.  We've tried other "chucking" upload solutions with progress bars using flash and php, but nothing works as reliably as FileChucker.
– Michael W.
FileChucker is working great...  Clients love it.  Vendors love it.  We love it.
– Gerry W.
Why didn't I just do this from the get-go?  So much easier.  Thanks for your work.  FileChucker makes my work easier.
– Dominic M.
Thanks again for a great product and great support - beyond expectations.
– Greg S.
I looked all over trying to find a simple cgi script.  I found that FileChucker was by far the best.  If you have issues with your hosting service's php.ini max upload size then this is the way to go.  Looking forward to future enhancements.
– Bob C.
Thank you VERY much for all of your help.  You've really impressed me.  We have support agreements for other software that costs thousands of dollars / year (just for the support), and most of them aren't as helpful as you have been.
– Keith Y.
Our members think your software is fantastic...  I would recommend your software and your company to anyone.  Thanks for all your help.  It has been a pleasure dealing with you.
– Tommy A.
Just one word: Fantastic.  10-minute job to plug FileChucker into my app, and it now works a treat.  It's through the hard work by people like yourselves that make my job so much easier.  Congratulations on an outstanding product... Many many thanks.
– Sean F.