D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
opt
/
lampp
/
lib
/
php
/
doc
/
HTML_Progress
/
examples
/
upload
/
Filename :
formpopup.php
back
Copy
<?php /** * Single Page Upload * A form is used to select and submit any kind of file to webserver * while a progress meter is running in indeterminate mode inside a popup. * * @version $Id: formpopup.php,v 1.3 2005/07/25 11:43:56 farell Exp $ * @author Laurent Laville <pear@laurent-laville.org> * @package HTML_Progress * @subpackage Examples */ require_once 'HTML/QuickForm.php'; function myProcess($values) { global $form; $destination = './uploads/'; $file =& $form->getElement('tstUpload'); if ($file->isUploadedFile()) { $ok = $file->moveUploadedFile($destination); if ($ok) { // write the semaphore to tell progress meter to stop // in script 'progressbar.php' $fp = fopen($destination . $_GET['ID'],'w',false); fwrite($fp, 'done'); fclose($fp); } } } ?> <html> <head> <script language="javascript"> <!-- function DoUpload() { theFeats = "height=100,width=250,location=no,menubar=no,resizable=no,scrollbars=no,status=no,toolbar=no"; theUniqueID = (new Date()).getTime() % 1000000000; window.open("progressbar.php?ID=" + theUniqueID, theUniqueID, theFeats); document.formpopup.action = "formpopup.php?ID=" + theUniqueID; document.formpopup.submit(); } //--> </script> </head> <body> <?php $form =& new HTML_QuickForm('formpopup'); // We need an additional label below the element $renderer =& $form->defaultRenderer(); $renderer->setElementTemplate(<<<EOT <tr> <td align="right" valign="top" nowrap="nowrap"><!-- BEGIN required --><span style="color: #ff0000">*</span><!-- END required --><b>{label}</b></td> <td valign="top" align="left"> <!-- BEGIN error --><span style="color: #ff0000">{error}</span><br /><!-- END error -->{element} <!-- BEGIN label_2 --><br/><span style="font-size: 80%">{label_2}</span><!-- END label_2 --> </td> </tr> EOT ); $form->addElement('header', null, 'Uploaded file rules'); $form->addElement('file', 'tstUpload', array('Upload file:', 'Rule types: \'uploadedfile\', \'maxfilesize\' with $format = 10240, \'mimetype\' with $format = \'text/xml\', filename with $format = \'/\\.xml$/\'<br />Validation for files is obviuosly <b>server-side only</b>')); $form->addRule('tstUpload', 'Upload is required', 'uploadedfile'); $form->addRule('tstUpload', 'File size should be less than 10kb', 'maxfilesize', 10240); $form->addRule('tstUpload', 'File type should be text/xml', 'mimetype', 'text/xml'); $form->addRule('tstUpload', 'File name should be *.xml', 'filename', '/\\.xml$/'); $form->addElement('header', null, 'Submit the form'); $submit[] =& $form->createElement('button', null, 'Upload', array('onClick'=>'DoUpload();')); $form->addGroup($submit, null, null, ' ', false); $form->applyFilter('__ALL__', 'trim'); if ($form->validate()) { // Form is validated, then processes the data $form->freeze(); $form->process('myProcess', true); echo '<p><< <a target="_top" href="../index.html">Back examples TOC</a></p>'; } elseif (isset($_GET['ID'])) { $destination = './uploads/'; $fp = fopen($destination . $_GET['ID'],'w',false); fwrite($fp, 'error'); fclose($fp); } $form->display(); ?> </body> </html>