CodeIgniter L'Avancement Du Téléchargement

Je suis en train de faire un upload de fichier avec une barre de progression, avec CI 2.1.3. J'ai l'upload de fichier tout fonctionne correctement, mais l'obtention de ce fichier progrès chose n'a pas été facile. J'ai regardé une tonne de guides avec toutes les différentes solutions, mais aucune ne semble pas fonctionner, car la plupart sont assez anciennes (2008-ish).

Voici ce que je suis à la recherche de:

  • PHP/jQuery/AJAX/Javascript solution (pas de Flash, s'il vous plaît!)
  • Cross-Browser (IE n'est pas un problème, donc si ça ne fonctionne pas avec IE8 ou inférieur à celui de l'amende)
  • CodeIgniter Télécharger la Bibliothèque-compatible

C'est à ce sujet. Mon code de référence:

PHP:

public function do_upload()
{
    //Configure and load the uploads library
    $config['upload_path']   = './uploads/';
    $config['allowed_types'] = 'mp4|mov';
    $config['encrypt_name']  = TRUE;
    $config['max_size']      = '2621440'; //2.5 GB, in kilobytes

    $this->load->library('upload', $config);

    if (!$this->upload->do_upload('userfile'))
    {
        $this->session->set_flashdata('error', $this->upload->display_errors('', ''));

        redirect('upload');
    }
    else
    {
        $this->session->set_flashdata('upload_data', $this->upload->data());

        $upload_data = $this->upload->data();
        $uploader = $this->flexi_auth->get_user_by_id()->row_array()['uacc_username'];

        $this->load->model('upload_model');
        $this->session->set_flashdata('uaid', $this->upload_model->generate_uaid($upload_data['raw_name']));
        $this->upload_model->create_upload($upload_data['file_name'], $upload_data['raw_name'], $upload_data['client_name'], $upload_data['file_size'], $upload_data['file_path'], $uploader);

        redirect('upload');
    }
}

HTML:

<div class="progress progress-striped active" id="upload_progress" style="display: none;">
                    <div class="bar" id="upload_progress_bar" style="width: 0%;"></div>
                </div>
                <?php echo form_open_multipart('upload/do_upload', array('id' => 'upload_form')); ?>
                <input type="file" name="userfile" size="20" />
                <button type="submit" name="upload">Upload</button>
                <?php echo form_close(); ?>
Jetez un oeil à ce plugin jQuery, peut-être que vous pouvez l'utiliser ou de prendre des pièces à utiliser dans votre projet en ce qui concerne la barre de progression: pixelcone.com/fileuploader

OriginalL'auteur troytc | 2013-04-11