I’ve designed a working PHP upload script for depositing files on a server via a POST command and FTP. It’s working great — the only problem is that I’m having a heck of a time figuring out how to display a “please wait” message while the file is uploading. I tried adding HTML above the script, but the text only displays after the file has already been uploaded (or an error occurs). The only thing that (sort of) works is to add a Javascript pop-up window using the onClick html form setting… but that’s really not ideal, and I’m afraid that those using the script may get confused by the pop-up and try and navigate away from the main window while the POST/FTP process is still ongoing.
I am relatively new to PHP and I get the sense that there is an obvious solution… Unfortunately so far, I can’t seem to find one. Any ideas? Please forgive my ignorance! 🙂
Thanks-
For PHP 5.4 there is now session upload progress functionality built in. It was originally patched into php 5.3. Here is the manual for it http://php.net/manual/en/session.upload-progress.php.
When session.upload_progress.enabled is true (as it is by default in PHP 5.4 and presumably beyond) and $_POST[session.upload_progress.name] is sent during an upload, information about the file transfer is made available in the $_SESSION superglobal array.
Here is a good tutorial that uses the $_SESSION superglobal and javascript to render a progress bar for uploading files: http://phpmaster.com/tracking-upload-progress-with-php-and-javascript/