UBER-UPLOADER (UU) VER 6.7.2

10:37 AM May 16, 2009
Home Page: uber-uploader.sourceforge.net
Project Page: sourceforge.net/projects/uber-uploader
Demo: www.webdice.org/uber_uploader/

Valid XHTML 1.0 Strict Valid CSS

CONTENTS

Top

INSTALLATION

HELP

REQUIREMENTS

Top
NOTE: UU is not compatible with mod_perl
  1. Operating System: All BSD Platforms (FreeBSD/NetBSD/OpenBSD/Apple Mac OS X), All POSIX (Linux/BSD/UNIX-like OSes)
  2. Apache web server
  3. Perl with CGI, FILE::COPY, FILE::PATH, IO::File
  4. PHP

FLOW OF EXECUTION

Top
-----------------
|               |                          |--->(2) UPLOAD FILE(S)---->(create upload dir)-->(upload files)---->(5) REDIRECT
| SUBMIT UPLOAD |---->(1) LINK UPLOAD -----|                                          |
|               |                          |--->(3) SET PROGRESS BAR ---------|       |
|               |                                                             |       |
| progress bar  |<-----(return upload info and start progress bar)<-----------|       |
|               |                                                                     |
| |||||||       |<--------------------->(4) GET UPLOAD STATUS <----------------------->
|               |
-----------------

FILE LISTING

Top
FILE UPLOAD DESCRIPTION
cgi-bin/ubr_upload.pl REQUIRED Uploads the files to the server and redirects
html/ubr_lib.php REQUIRED Library of functions used by UU
html/ubr_ini.php REQUIRED Initializes UU
html/ubr_finished_lib.php REQUIRED Library of functions used by ubr_finished.php
html/ubr_default_config.php REQUIRED Default configuration file
html/ubr_file_upload.php REQUIRED File upload page with progress bar
html/ubr_file_upload.js REQUIRED JavaScript file required by ubr_file_upload.php
html/ubr_link_upload.php REQUIRED Links PHP to CGI
html/ubr_set_progress.php REQUIRED Initializes the upload progress bar
html/ubr_get_progress.php REQUIRED Updates progress bar with upload information
html/ubr_finished.php REQUIRED Displays the upload results
html/images/progress_bar_blue.png OPTIONAL Background image for progress bar
html/images/progress_bar_white.png OPTIONAL Background image for progress bar
html/images/toggle.png OPTIONAL Background image for upload stats toggle
html/images/toggle_collapse.png OPTIONAL Background image for upload stats toggle
html/images/cross.png OPTIONAL Background image for file delete
html/.htaccess OPTIONAL Possible flength file fix
INSTALL_AND_FAQ.HTML NO This file
CHANGE_LOG.TXT NO The change log
CREDITS.TXT NO Credit file

INITIALIZATION

Top
FILE INI SETTING DESCRIPTION

1ATTENTION - These values must be duplicated in BOTH the ubr_upload.pl and ubr_ini.php files.
2CGI.pm version must be greater than 3.15. CGI_UPLOAD_HOOK is simply a different method to gather upload information. By using this method it is possible to know what file is currently being uploaded.
3CAREFUL - Decreasing this value will result in a smoother and accurate progress bar, however it will increase the load on the server.
ubr_upload.pl TEMP_DIR1 Where UU stores its temp files while uploading
ubr_upload.pl DATA_DELIMITER1 Character set UU uses to seperate values in files
ubr_ini.php TEMP_DIR1 Where UU stores its temp files while uploading
ubr_ini.php DATA_DELIMITER1 Character set UU uses to seperate values in files
ubr_ini.php path_to_upload_script Path to the ubr_upload.pl script
ubr_ini.php path_to_link_script Path to the ubr_link_upload.php script
ubr_ini.php path_to_set_progress_script Path to the ubr_set_progress.php script
ubr_ini.php path_to_get_progress_script Path to the ubr_get_progress.php script
ubr_ini.php path_to_js_script Path to the ubr_file_upload.js script
ubr_ini.php path_to_jquery Path to the jquery-1.3.2.min.js script
ubr_ini.php path_to_css_file Path to the ubr.css file
ubr_ini.php default_config Name of the default config file
ubr_ini.php embedded_upload_results Enable/Disable embedded upload results
ubr_ini.php redirect_method 0=no redirect(CGI output), 1=redirect using location, 2=redirect using html, 3=redirect using javascript
ubr_ini.php multi_configs_enabled Enable/Disable multi config file support
ubr_ini.php cgi_upload_hook2 Enable/Disable CGI hook file
ubr_ini.php get_progress_speed3 How frequently the server is polled for upload status (10000=10 secs, 5000=5 secs, 1000=1 sec, 500=0.5 sec, 250=0.25 sec)
ubr_ini.php delete_link_file Enable/Disable delete link file after it has been read by the uploader
ubr_ini.php delete_redirect_file Enable/Disable delete redirect file after it has been read by the upload finished page
ubr_ini.php purge_link_files Enable/Disable purge old link files when link script is loaded
ubr_ini.php purge_link_limit Max age of old link files in seconds
ubr_ini.php purge_redirect_files Enable/Disable delete old redirect files when link script is loaded
ubr_ini.php purge_redirect_limit Max age of old redirect files in seconds
ubr_ini.php purge_temp_dirs Enable/Disable purge old temp upload directories
ubr_ini.php purge_temp_dirs_limit Max age of old temp upload directories in seconds
ubr_ini.php flength_timeout_limit Number of times/second to find the flength file
ubr_ini.php hook_timeout_limit Number of times/second to find the flength file
ubr_ini.php debug_ajax Show/Hide ajax debug window and Enable/Disable showDebugMessage function calls
ubr_ini.php debug_php Enable/Disable display PHP info when the file upload page is loaded
ubr_ini.php debug_config Enable/Disable display Config info when the file upload page is loaded
ubr_ini.php debug_upload Enable/Disable display Link and Perl info when uploader is loaded
ubr_ini.php debug_finished Enable/Disable display Redirect info when upload finished page is loaded
ubr_ini.php php_error_reporting Enable/Disable PHP error_reporting(E_ALL);

CONFIGURATION

Top
FILE CONFIG SETTING SCOPE DESCRIPTION

CS = Client side setting (affects client)
SS = Server side setting (affects server)
1Cedric progress bar is predictive, therefore it is smoother but less accurate than a non-cedric progress bar. If progress bar accuracy is paramount, disable cedric and use the default style progress bar.
ubr_default_config.php config_file N/A Name of the config file
ubr_default_config.php check_file_name_format CS Enable/Disable check format of the file name before uploading
ubr_default_config.php allow_extensions CS/SS File extensions that will upload
ubr_default_config.php disallow_extensions CS/SS File extensions that will not upload
ubr_default_config.php check_allow_extensions_on_client CS Enable/Disable client side allow file extension check
ubr_default_config.php check_disallow_extensions_on_client CS Enable/Disable client side disallow file extension check
ubr_default_config.php check_null_file_count CS Enable/Disable check for all empty file upload slots before uploading
ubr_default_config.php check_duplicate_file_count CS Enable/Disable check for duplicate files before uploading
ubr_default_config.php check_file_name_regex CS Regular expression used when checking upload file names
ubr_default_config.php check_file_name_error_message CS Error message shown when file name check fails
ubr_default_config.php check_allow_extensions_on_server SS Enable/Disable server side allow file extension check
ubr_default_config.php check_disallow_extensions_on_server SS Enable/Disable server side disallow file extension check
ubr_default_config.php show_percent_complete CS Show/Hide percent complete information
ubr_default_config.php show_files_uploaded CS Show/Hide number of files uploaded
ubr_default_config.php show_current_position CS Show/Hide current bytes upoaded
ubr_default_config.php show_current_file CS Show/Hide current file upload (Only works if CGI_UPLOAD_HOOK ini setting is enabled)
ubr_default_config.php show_elapsed_time CS Show/Hide elapsed time
ubr_default_config.php show_est_time_left CS Show/Hide estimated time left to upload finished
ubr_default_config.php show_est_speed CS Show/Hide estimated upload speed
ubr_default_config.php cedric_progress_bar1 CS Enable/Disable cedric style progress bar
ubr_default_config.php cedric_hold_to_sync CS Enable/Disable hold cedric progress bar until resync with uploader
ubr_default_config.php bucket_progress_bar CS Enable/Disable bucket style progress bar (cedric_progress_bar must be disabled)
ubr_default_config.php progress_bar_width CS Set the width of the progress bar
ubr_default_config.php upload_dir SS Final destination of the uploaded files
ubr_default_config.php unique_upload_dir SS Enable/Disable upload to a unique directory inside the upload directory
ubr_default_config.php unique_file_name SS Enable/Disable unique file upload name
ubr_default_config.php unique_file_name_length SS Number of characters used when creating a 'unique_filename'
ubr_default_config.php max_upload_size SS Max upload size in bytes (2 * 1024 * 1024 = 2097152 = 2MB)
ubr_default_config.php overwrite_existing_files SS Enable/Disable file clobbering
ubr_default_config.php redirect_url SS Location of redirect after upload is complete
ubr_default_config.php normalize_file_names SS Enable/Disable file name normalization
ubr_default_config.php normalize_file_name_char SS The character that is used for file normalization
ubr_default_config.php normalize_file_name_regex SS Regular search and replace expression used when normalizing file names
ubr_default_config.php max_file_name_chars SS/CS Maximum number of characters in file names
ubr_default_config.php min_file_name_chars SS/CS Minimum number of charecters in file names
ubr_default_config.php strict_file_name_check SS Enable/Disable strict file name check. If this check fails, the file will not be transfered
ubr_default_config.php strict_file_name_regex SS Regular expression used in strict file name check
ubr_default_config.php link_to_upload SS Enable/Disable link to the uploaded file. Only works if you upload_dir is web accessible
ubr_default_config.php path_to_upload SS Path to the uploaded files. Only takes affect if link_to_upload=1
ubr_default_config.php send_email_on_upload SS Enable/Disable send email after upload
ubr_default_config.php html_email_support SS Enable/Disable html email support. Only takes affect if send_email_on_upload=1
ubr_default_config.php link_to_upload_in_email SS Enable/Disable link to the uploaded file. Only works if you upload_dir is web accessible
ubr_default_config.php email_subject SS The subject line that will appear in the email
ubr_default_config.php to_email_address SS Email addresses that will receive an email containing upload info
ubr_default_config.php from_email_address SS Email address that the email containing upload info is sent from
ubr_default_config.php log_uploads SS Enable/Disable file upload logging
ubr_default_config.php log_dir SS Path to log directory

INSTALLATION

Top
The following steps will guide you throught the installation process:
  1. Set the $TEMP_DIR value in ubr_upload.pl and ubr_ini.php. DO NOT MAKE THIS DIRECTORY PUBLIC! Examples:
    $TEMP_DIR = '/tmp/ubr_temp/';
    $TEMP_DIR = '/var/tmp/ubr_temp/';
    $TEMP_DIR = '/usr/home/roger/ubr_temp/';
    
  2. Set the $_CONFIG['upload_dir'] value in ubr_default_config.php. May or may not be public. Examples:
    $_CONFIG['upload_dir'] = '/tmp/ubr_uploads/';
    $_CONFIG['upload_dir'] = '/var/www/html/ubr_uploads/';
    $_CONFIG['upload_dir'] = '/usr/local/www/htdocs/ubr_uploads/';
    $_CONFIG['upload_dir'] = $ENV{'DOCUMENT_ROOT'} . '/ubr_uploads/';
    
  3. Set the correct path values for the scripts in ubr_ini.php. Examples:
    $_INI['path_to_upload_script']       = '/cgi-bin/ubr_upload.pl';
    $_INI['path_to_link_script']         = 'ubr_link_upload.php';
    $_INI['path_to_set_progress_script'] = 'ubr_set_progress.php';
    $_INI['path_to_get_progress_script'] = 'ubr_get_progress.php';
    $_INI['path_to_js_script']           = 'ubr_file_upload.js';
    $_INI['path_to_jquery']              = 'jquery-1.3.2.min.js';
    $_INI['path_to_css_file']            = 'ubr.css';
    
  4. Upload ubr_pload.pl to your cgi-bin directory. The path will be /var/www/cgi-bin or /usr/local/apache/cgi-bin
  5. Make ubr_pload.pl executable with the command chmod 755 ubr_pload.pl
  6. Upload ubr_ini.php to your webspace. The path will be /var/www/html or /usr/local/apache/htdocs
  7. Upload ubr_lib.php to your webspace. The path will be /var/www/html or /usr/local/apache/htdocs
  8. Upload ubr_finished_lib.php to your webspace. The path will be /var/www/html or /usr/local/apache/htdocs
  9. Upload ubr_default_config.php to your webspace. The path will be /var/www/html or /usr/local/apache/htdocs
  10. Upload ubr_file_upload.php to your webspace. The path will be /var/www/html or /usr/local/apache/htdocs
  11. Upload ubr_file_upload.js to your webspace. The path will be /var/www/html or /usr/local/apache/htdocs
  12. Upload jquery-1.3.2.min.js to your webspace. The path will be /var/www/html or /usr/local/apache/htdocs
  13. Upload ubr_link_upload.php to your webspace. The path will be /var/www/html or /usr/local/apache/htdocs
  14. Upload ubr_set_progress.php to your webspace. The path will be /var/www/html or /usr/local/apache/htdocs
  15. Upload ubr_get_progress.php to your webspace. The path will be /var/www/html or /usr/local/apache/htdocs
  16. Upload ubr_finished.php to your webspace. The path will be /var/www/html or /usr/local/apache/htdocs
  17. Upload ubr.css to your webspace. The path will be /var/www/html or /usr/local/apache/htdocs
  18. Load ubr_file_upload.php in your web browser and attempt to do a file upload.
  19. If your server is running Apache and you are using a public upload directory, it is recommended that you place a .htaccess text file in your /ubr_uploads/ directory. In that file put the single line "Options -Indexes" without the quotes. This will prevent people from getting at the raw directory listing of your upload directory. Of course, if for some reason you want people to be able to see the raw directory listing, then skip this step. Another way to lock down your upload directory is by simply placing an index.html file in your /ubr_uploads/ directory.
Your installation may look something like this:
/var/www/cgi-bin/ubr_pload.pl
/var/www/html/ubr_ini.php
/var/www/html/ubr_lib.php
/var/www/html/ubr_finished_lib.php
/var/www/html/ubr_default_config.php
/var/www/html/ubr_file_upload.php
/var/www/html/ubr_file_upload.js
/var/www/html/jquery-1.3.2.min.js
/var/www/html/ubr.css
/var/www/html/ubr_link_upload.php
/var/www/html/ubr_set_progress.php
/var/www/html/ubr_get_progress.php
/var/www/html/ubr_finished.php

Checklist
  1. Make sure you set the proper (755) permissions for ubr_pload.pl
  2. Make sure the path to perl is correct in ubr_pload.pl
  3. Make sure you have (777) permissions on the upload and temp directories
  4. Make sure all the PATH_TO values are correct in ubr_ini.php.
NOTE: UU will attempt to make the temp and upload directories but may fail due to permissions. If this occurs, you will have to make these directories manually and set the proper (777) permissions. If your upload directory is public, take this opportunity to lock it down.

INSTALLING MULTIPLE CONFIG FILES

Top
if($_INI['multi_configs_enabled']){
	if($_SESSION['user'] == "tom"){ $config_file = 'ubr_tom_config'; }
	elseif($_SESSION['user'] == "dick"){ $config_file = 'ubr_dick_config'; }
	elseif($_SESSION['user'] == "harry"){ $config_file = 'ubr_harry_config'; }
	elseif($_SESSION['user'] == "sally"){ $config_file = 'ubr_sally_config'; }
	else{ $config_file = 'ubr_default_config'; }
}

PASSING VALUES THROUGH UU

Top
UU supports two simple methods for transferring values through the upload process. Values passed will be available in both the ubr_upload.pl and ubr_finished.php scripts.
  1. Post Values
    This method is good way to pass values if it is public and/or the end user is entering the values on the file picker page. For example lets say we want the user to enter their favorite color. Simply add the new input to the uu_upload form in the ubr_file_upload.php page. eg.
    <input type="text" name="fav_color" value="Enter favorite color">
    
    This value will be available inside the upload script ubr_upload.pl once the upload is "complete" as
    $query->param("fav_color");
    
    This value will be available inside the finished script ubr_finished.php as
    if(isset($_POST_DATA['fav_color'])){ do something; }
    
    or in the case of an array as
    if(isset($_POST_DATA['check_box'][0])){ do something; }
    
  2. Config Values
    This method is good way to pass values if it is private data like a cookie or session value. For example lets say we want to pass the users password which is being stored in a session. We simply initialize a new config value and assign it the users password. This would be done in the ubr_link_upload.php script before it creates the link file for the upload. eg.
    $_CONFIG['user_password'] = $_SESSION['user_password'];
    
    This value will be available inside the upload script ubr_upload.pl once the link file is loaded as
    $config{'user_password'};
    
    This value will be available inside the finished script ubr_finished.php as
    $_CONFIG_DATA['user_password'];
    
    NOTE: You can also override config values in the ubr_link_upload.php script. eg.
    $_CONFIG['max_upload_size'] = $_SESSION['new_max_upload_size'];
    

PROGESS BAR STYLES

Top
Uber-Uploader is capable of displaying 4 different progress bar styles.
  1. Default Progress Bar
    Default progress bar 'waits' for upload info and 'jumps forward' to the proper values. This is the most accurate progress bar style but it is not very sexy. If accuracy is your main concern or you may be dealing with small uploads, this is probably your best choice.
    Settings:
    $_CONFIG['cedric_progress_bar'] = 0;
    $_CONFIG['cedric_hold_to_sync'] = 0;
    $_CONFIG['bump_progress_bar'] = 0;
    
  2. Cedric Progress Bar
    Cedric progress bar does 'not wait' for upload info and 'moves forward' in a smooth fashion. The rate in which it moves is continually adjusted by the upload info speed and time. It will aouto-correct itself by 'jumping forward or backward' when a reading is recieved. This style of progress bar is good if you are dealing with large uploads on a reliable line.
    Settings:
    $_CONFIG['cedric_progress_bar'] = 1;
    $_CONFIG['cedric_hold_to_sync'] = 0;
    $_CONFIG['bucket_progress_bar'] = 0;
    
  3. Cedric Progress Bar With Sync Hold
    Same as Cedric progress bar but it will 'hold' and sync up with the actual upload info if it races ahead.
    Settings:
    $_CONFIG['cedric_progress_bar'] = 1;
    $_CONFIG['cedric_hold_to_sync'] = 1;
    $_CONFIG['bucket_progress_bar'] = 0;
    
  4. Bucket Progress Bar
    Bucket progress bar 'waits' for upload info and 'moves forward' to the proper values. More accurate than a Cedric progress bar but tends to fall short of 100% progress on small uploads before refresh. This style of progress bar is better for large uploads.
    Settings:
    $_CONFIG['cedric_progress_bar'] = 0;
    $_CONFIG['cedric_hold_to_sync'] = 0;
    $_CONFIG['bucket_progress_bar'] = 1;
    

SECURITY

Top
If your server is running Apache and you are using a public upload directory, it is recommended that you place a .htaccess text file in your /ubr_uploads/ directory. In that file put the single line "Options -Indexes" without the quotes. This will prevent people from getting at the raw directory listing of your upload directory. You may also prevent a raw file listing by simply putting a blank index.html file in the /ubr_uploads/ directory.

DEBUGGING TOOLS

Top
Address Bar Commands
www.yoursite.com/cgi-bin/ubr_upload.pl?about
www.yoursite.com/ubr_file_upload.php?about
www.yoursite.com/ubr_link_upload.php?about
www.yoursite.com/ubr_set_progress.php?about
www.yoursite.com/ubr_get_progress.php?about
www.yoursite.com/ubr_finished.php?about

Ini Settings

FAILED TO FIND FLENGTH FILE

Top
The first step to solving the flength file issue is to eliminate the obvious.
  1. Make sure the $TEMP_DIR setting is EXACTLY the same in the ubr_ini.php and ubr_upload.pl files.
  2. Make sure the ubr_upload.pl file executes by calling it with the about command from your browser. eg. www.yoursite.com/cgi-bin/ubr_upload.pl?about
  3. Max execution time of PHP or Perl scripts are set too low. See 'DEBUGGING TOOLS->INI SETTINGS->DEBUG_PHP and DEBUG_UPLOAD' section.
Assuming the script is set up properly, you are probably dealing with some kind of server side write-caching. Some servers perform write-caching which prevents writing out the flength file or the entire CGITemp file during the upload. The flength file or the CGITemp file do not actually hit the disk until the upload is complete, making it worthless for reporting on progress during the upload. So far 3 reasons have been identified along with possible fixes.
  1. A mod_security module for Apache
    This may be fixed using a .htaccess file assuming your host supports them. To fix it just create a file called .htaccess (that's a period followed by "htaccess") and put the following lines in that file. Upload the file into the directory where the Uber-Uploader CGI ".pl" scripts resides, or in some directory above it (like your server's DOCUMENT_ROOT, i.e. the top-level of your webspace). .htaccess files must be uploaded as ASCII mode, not BINARY. You may need to CHMOD the .htaccess file to 644 or (RW-R--R--).
    <IfModule mod_security.c>
      # Turn off mod_security filtering.
      SecFilterEngine Off
    
      # The below probably isn't needed,
      # but better safe than sorry.
      SecFilterScanPOST Off
    </IfModule>
    
    If the above method does not work, try putting the following lines into the file
    <IfModule mod_security.c>
      SetEnvIfNoCase Content-Type \
      "^multipart/form-data;" "MODSEC_NOPOSTBUFFERING=Do not buffer file uploads"
    </IfModule>
    
    <IfModule mod_gzip.c>
      mod_gzip_on No
    </IfModule>
    
  2. "Performance Cache" enabled on OS X SERVER
    If you're running OS X Server and the progress bar isn't working, it could be because of "performance caching." Apparently if ANY of your hosted sites are using performance caching, then by default, all sites (domains) will attempt to. The fix then is to disable the performance cache on all hosted sites.
  3. Lighttpd web server
    Lighttpd web server is known to buffer posts. To fix add one of the following lines to the lighttpd.conf file.
    lighttd 1.5.x -> server.network-backend = "writev"
    
    or
    1.5.x -> server.network-backend = "linux-sendfile"
    
NOTE: If the above information does not solve your problem, your time is probably best spent finding a Java or Flash based uploader. Any other Perl based uploader will have the same issue.

SERVER CLUSTERS

Top
If your site consists of several servers in a cluster, you may find that it occasionally fails to find your uploaded files. This may be due to the fact that you uploaded a file to server 'A' but were redirected to server 'B' when the upload was finished. When the 'ubr_finished.php' script is fired on server 'B' it looks in server 'B's' temp directory for the 'sid.xml' file which it cannot find because it is on server 'A'. One possible solution is setting the refresh method to 'location' and using a relative 'redirect_url' in relation to the perl script. This would force the script to redirect to the same physical machine were the upload occured.
For example if we assume our setup is like so
/cgi-bin/ubr_upload.php
/htdocs/members/ubr_finished.php
We would set the following config file setting
$_CONFIG['redirect_url']  = '../members/ubr_finished.php';
and the following ini setting
$_INI['redirect_method']  = 1;

HOW TO VIEW AN ACTIVE UPLOAD (CGI_UPLOAD_HOOK DISABLED)

Top
The TEMP_DIR ini setting is assumed to be $TEMP_DIR = '/tmp/ubr_temp/';

STEPS TO VIEW ACTIVE UPLOAD

  1. Enable the $_INI['debug_ajax'] ini setting in ubr_ini.php.
  2. Load ubr_file_upload.php in your web browser.
  3. Open a command line (shell) to your web server and go to the TEMP_DIR directory.
  4. Start a large upload.
  5. Note the 32 character Upload ID (eg. 325d7d52d78083839d4f9ced94821695) that appears in the AJAX DEBUG WINDOW.
  6. While your files are uploading, get a listing of your TEMP_DIR directory.
  7. You should now see a directory in TEMP_DIR called 325d7d52d78083839d4f9ced94821695.dir.
  8. Now get a listing of the 325d7d52d78083839d4f9ced94821695.dir directory.
  9. You will see a file called 325d7d52d78083839d4f9ced94821695.flength. This is the file that contains the size of the upload in bytes.
  10. You will also see a file like CGItemp3984. This is a file being uploaded. It will change in size as the file is uploaded.
  11. If there is more than one upload, there will be multiple CGItemp???? files.
So with three active file uploads, the file structure will look something like this:
/tmp/ubr_temp/325d7d52d78083839d4f9ced94821695.dir/325d7d52d78083839d4f9ced94821695.flength
/tmp/ubr_temp/325d7d52d78083839d4f9ced94821695.dir/CGItemp3984
/tmp/ubr_temp/325d7d52d78083839d4f9ced94821695.dir/CGItemp3985
/tmp/ubr_temp/325d7d52d78083839d4f9ced94821695.dir/CGItemp3986

PROGRESS BAR NOTES:

HOW TO VIEW AN ACTIVE UPLOAD (CGI_UPLOAD_HOOK ENABLED)

Top
The TEMP_DIR ini setting is assumed to be $TEMP_DIR = '/tmp/ubr_temp/';

STEPS TO VIEW ACTIVE UPLOAD

  1. Enable the $_INI['debug_ajax'] ini setting in ubr_ini.php.
  2. Load ubr_file_upload.php in your web browser.
  3. Open a command line (shell) to your web server and go to the TEMP_DIR directory.
  4. Start a large upload.
  5. Note the 32 character Upload ID (eg. 325d7d52d78083839d4f9ced94821695) that appears in the AJAX DEBUG WINDOW.
  6. While your files are uploading, get a listing of your TEMP_DIR directory.
  7. You should now see a directory in TEMP_DIR called 325d7d52d78083839d4f9ced94821695.dir.
  8. Now get a listing of the 325d7d52d78083839d4f9ced94821695.dir directory.
  9. You will see a file called 325d7d52d78083839d4f9ced94821695.flength. This is the file that contains the size of the upload in bytes.
  10. You will also see a file called 325d7d52d78083839d4f9ced94821695.hook. This is the file that contains the the upload info.
The file structure will look something like this.
/tmp/ubr_temp/325d7d52d78083839d4f9ced94821695.dir/325d7d52d78083839d4f9ced94821695.flength
/tmp/ubr_temp/325d7d52d78083839d4f9ced94821695.dir/325d7d52d78083839d4f9ced94821695.hook

PROGRESS BAR NOTES:

MULTI SIMULTANEOUS UPLOADS

Top
UU is capable of performing multi simultaneous uploads if your web browser is configured properly. UU requires two connections per upload.
One connection is required for the upload and one connection is required for the progress bar. By default IE and Firefox ships with the ability to make several simultaneous connections. However, you can increase the the amount of simultaneous connections by changing the following values. Just 'Google' for instructions on changing these values.

FOREIGN LANGUAGE SUPPORT

Top
As of release 4.5 Uber-Uploader has changed all content-type headers to UTF-8 which will add greater support for non-latin languages. This feature is not 100% so you will need to do some of your own development. Below are some helpful links.

HOW TO VIEW YOUR PHP SETTINGS

Top
To see your PHP settings, enable the "DEBUG_PHP" ini setting in the "ubr_ini.php" file and load "ubr_file_upload.php" in your browser. This mode will dump all your PHP settings to screen.

HOW TO VIEW YOUR PERL SETTINGS

Top
To see your Perl settings, enable the "DEBUG_PERL" value in the "ubr_upload.pl" file and load "ubr_upload.pl" in your browser. This mode will dump all your Perl settings to screen. Alternatively, you enable the $_INI['debug_upload'] ini setting and post an upload. This method will dump all your Perl settings to screen along with the loaded config settings.

APACHE SETTINGS THAT MAY AFFECT UPLOADS

Top
LimitRequestBody 
KeepAlive 
KeepAliveTimeout 
MaxClients

PHP SETTINGS THAT MAY AFFECT UPLOADS

Top
max_execution_time 
max_input_time 
memory_limit