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
Vous devez vous connecter pour publier un commentaire.
En fait, après avoir fait quelques recherches, il semble que Dropzone.JS fonctionne vraiment bien avec CI, avec très peu de configuration et de peaufinage. Je n'ai pas eu la chance d'utiliser toutes ses fonctionnalités, mais après seulement 5 minutes de travail, il a obtenu la progression du téléchargement ET de drag 'n' drop le téléchargement fonctionne très bien.
OriginalL'auteur troytc
http://vortexdev.netii.net/article_20/Integrate_jQuery_File_Upload_with_CodeIgniter
- 2012/05/14
https://github.com/blueimp/jQuery-File-Upload/wiki/jQuery-File-Upload-6.5-with-CodeIgniter-2.1
- édité il y a 5 mois
C'est une question difficile. Il existe de nombreuses solutions, mais cela dépend beaucoup de la pile et de la cible (par exemple, pas de flash dans votre cas). Il y a un Extension PECL qui fournissent une fonctionnalité native ainsi que de nombreux exemples de d'autres essayer de faire l' même chose que ont été actif au cours de la dernière année. Theres également cette qui prétend offrir des droites html progrès accomplis sur la base de PHP contrôle de sortie. Je ne pouvais pas le faire fonctionner en local.
Meilleur pari est de commencer brassage des trucs ensemble et essayer d'obtenir quelque chose qui fonctionne, il n'y a pas pour le moment d'un droit plug-n-play pour télécharger CI barres de progression.
Je n'ai jamais utilisé, mais il est. C'est une jolie exigence de base. J'ai effectivement regardé github.com/blueimp/jQuery-File-Upload/wiki/... encore une fois, et il est vraiment complet. Cette page a tout ce dont vous avez besoin, de l'essayer et si vous éprouvez des difficultés à obtenir l'URL à afficher, ouvrir une autre question.
Très bien, merci! 🙂
OriginalL'auteur stormdrain