PHP Developers Network

A community of PHP developers offering assistance, advice, discussion, and friendship.
 
Loading
It is currently Wed Nov 14, 2018 1:42 pm

All times are UTC - 5 hours




Post new topic Reply to topic  [ 1 post ] 
Author Message
PostPosted: Wed Feb 23, 2011 11:39 am 
Offline
Forum Newbie

Joined: Wed Sep 17, 2008 11:42 am
Posts: 8
Hi, I'm trying to implement a upload progress bar with clientele from codecanyon.com. It is a PHP client portal application. It allows file uploads by default but without any status bar. I have tried apc and uploadstatus solutions and both don't work with my server and they tell me it should. I've tried making it work even outside of the app with no luck.

Is there a simple upload status bar in any language that would work with a HTML form. The form is submitted to put info into a database with user and project info so the form part is very necessary. I'm beating my head against the wall on this one. Not sure how much code you all would like to see but here is the form submit part as in the original file.

Syntax: [ Download ] [ Hide ]
<?php

/**
 * @author 23rd and Walnut
 * @copyright 2010
 */


?>
<div id="form-top"></div>
<div id="form">

<div class="error_list">
<?php
        if (isset($error_list))
                echo $error_list;
?>
</div>


<form id="new_file" enctype="multipart/form-data" action="index.php?a=documents/add/<?php echo $project?>" method="post">
       
        <div><h2 class="form-title">Upload Document</h2></div>
       
        <div>
                <label>Document Description</label>
                <input type="text" name="document_name" id="document_name" class="wide" />
        </div>
       
        <div>
                <label>Project Phase</label>
                <select name="phase" id="phase" class="wide">
                        <option value=""></option>
                        <?php $n=1; ?>
                    <?php foreach($phases as $phase)
                                  {
                                                echo "<option value='".$n++."'>".$phase."</option>";
                                  }
                    ?>
                </select>
        </div>
       
        <div>
                <input type="hidden" name="MAX_FILE_SIZE" value="2000000" />
            <label>File to upload </label>
                <input name="document" type="file" />
        </div>
               
       
        <div class="clearfix">
                <input type="image" id="submit" name="submit" alt="Submit" src="application/views/images/button-login.png" value="submit"/>
        </div>
       
</form>
<div id="form-bottom"></div>
 


There is also a documents controller file which i think works with this too.
Syntax: [ Download ] [ Hide ]
<?php

/**
 * @author 23rd and Walnut
 * @copyright 2010
 */


class DocumentsController extends Controller
{
        /**
         * Add a new document for a project
         */

        function add($project)
        {
                $this->loadLibrary('formvalidator.class');
               
                if($user = $this->logged_in())
                {      
                        global $allow_client_uploads;
                        if($user['group_id']==0 || $allow_client_uploads == true)
                        {
                               
                               
                                $this->loadModel('Project');
                                $project_details = $this->Project->details($project);
                               
                                /**
                                 * Make sure client has access to this project
                                 */

                                if($user['group_id'] != 0 )
                                {
                                        if($user['id'] != $project_details['client_id'])
                                        {
                                                return false;
                                        }
                                }
                                /**
                                 * Gets a list of project phases for the
                                 * new document form
                                 */

                               
                                $phases = $this->Project->get_phases($project);
                               
                                $this->set('phases', $phases);
                                $this->set('project', $project);
                               
                                /**
                                 * Display form with no errors if
                                 */

                                if(!isset($_POST['document_name']) && !isset($_FILES['document']))
                                {
                                        $this->loadView('new-file');
                                }
                                else
                                {
                                        $document_name  = $_POST['document_name'];
                                        $document               = $_FILES['document']['name'];
                                        $phase                  = $_POST['phase'];
                                       
                                        /**
                                         * Validate user inputs
                                         */

                                        $validator              = new FormValidator();
                                        $project_name   = $validator->run($document_name, 'Document Description', 'required|clean');
                                        $document               = $validator->run($document, 'Document', 'required|clean');
                                        $document               = $validator->run($phase, 'Phase', 'required|clean');
                                       
                                        if ($validator->has_errors == true)
                                        {
                                                $this->loadView('new-file');
                                        }
                                        else
                                        {
                                                $rel_project    = $this->Project->details($project);
                                                $rel_client_id  = $rel_project['client_id'];
                                               
                                                $this->loadModel('Client');
                                                $uploaded_by = $this->Client->get_client_details($user['id']);
                                                $this->loadModel('Document');
                                               
                                                /**
                                                 * Add the document to the project
                                                 */

                                                if($this->Document->add_document($rel_client_id, $document_name, $project, $phase, $uploaded_by))                                
                                                {
                                                       
                                                        $this->alert("Document Uploaded Successfully", "success");
                                                        $this->redirect('projects/view/'.$project);
                                                }
                                                else
                                                {
                                                        $this->alert("There was an error uploading the file", "error");
                                                        $this->redirect('projects/view/'.$project);
                                                }
                                        }
                                }
                        }
                        else $this->redirect('portal/home');
                }
                else
                {;}
        }
       
       
        /**
         * Initiate download of the requested
         * document
         */

        function download($document)
        {
                /** Check that the user is logged in **/
                if($user = $this->logged_in())
                {      
                        /** Make sure the document is associated
                         * with the user account or the user is an
                         * admin
                         */

                        $this->loadModel('Document');
                        if (!$this->Document->authorized_to_download($document, $user))
                        {
                                return false;
                        }
               
                        /** Turn off error reporting to avoid
                         * document getting corrupted
                         */

                        error_reporting(0);
                       
                        /**
                         * Verify file exists then send to
                         * browser
                         */

                        global $document_upload_path;
                        $document = $document_upload_path.$document;
                        if (file_exists($document))
                        {
                            header('Content-Description: File Transfer');
                            header('Content-Type: application/octet-stream');
                            header('Content-Disposition: attachment; filename='.basename($document));
                            header('Content-Transfer-Encoding: binary');
                            header('Expires: 0');
                            header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
                            header('Pragma: public');
                            header('Content-Length: ' . filesize($document));
                            ob_clean();
                            flush();
                            readfile($document);
                            exit;
                        }
                        else
                        {
                                $this->alert("The requested file does not exist", "error");
                                $this->redirect("portal/home");
                        }
                }
        }

   

    function delete($path, $description)
        {
                $auth = false;
                if($user = $this->logged_in())
                {
                        if($user['group_id']==0)
                        {
                                $auth = true;
                        }
                }

                if($auth == true)
                {
                        $this->loadModel("Document");

                        $this->Document->delete($path, $description);

                        $this->alert("Document Deleted", "notice");
                        $this->redirect("portal/home");
                }
        }
       
}

?>

If you need anything else let me know. Not sure how much I can post since it is "copyrighted"

Thanks!


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 1 post ] 

All times are UTC - 5 hours


Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Jump to:  
Powered by phpBB® Forum Software © phpBB Group