IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

Upload fichier volumineux avec barre progression


Sujet :

Symfony PHP

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 82
    Par défaut Upload fichier volumineux avec barre progression
    Bonjour à tous!

    Je souhaite maintenant faire un formulaire avec un input file permettant d'envoyer des fichiers qui seront plus ou moins volumineux (jusqu'à 8 Go) de type plus ou moins différents (iso, zip, rar).
    Pour ce qui est de la securité, ce formulaire ne sera accessible que dans le backend par le(s) superadmin(s).

    Lors de l'upload j'aimerais afficher une barre de progression en temps réel.
    Je me demande donc si il existe deja des plugin symfony ou non. Et si tel n'est pas le cas, comment faire pour mener mon projet à terme.

    J'ai lu qu'il existait une méthode basée sur du PHP et APC (que je peux installer sur mon serveur). Qu'en pensez-vous: est-ce viable?

    Merci de votre aide.

  2. #2
    Membre éprouvé

    Homme Profil pro
    Software Engineer
    Inscrit en
    Août 2004
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2004
    Messages : 173
    Par défaut
    Salut,

    Voilà la méthode que j'utilise personnellement, pas parfaite mais correcte.
    - Il te faut déjà lancer la partie import dans un processus à part de celui qui exécute la requête utilisateur.
    Tu peux soit utiliser popen(ou proc_open) , soit faire un script sh qui lance le processus que tu appelleras avec exec()

    - Ensuite dans ton import, pendant l'exécution il te faudra créer un fichier (par exemple import.lock) où tu mettras les infos nécessaires à la barre de loading
    par exemple moi je mettais simplement X / N ou X est le fichier courant et N le nombre total.
    Ce fichier devra être supprimé à la fin de l'import

    - Sur ta vue il va te falloir interroger le serveur périodiquement, tu peux faire ca avec la fonction JS window.setInterval() et window.clearInterval().
    à chaque intervalle tu fais une requete AJAX qui va chercher dans le fichier import.lock les infos, et dans un partial tu créé un div avec une largeur qui va dépendre de l'avancement.
    le clearInterval sera appelé uniquement quand le fichier import.lock n'existe plus.

    Voilà grosso modo la marche à suivre.

  3. #3
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Ceci m'a l'air bien compliqué.

    Et difficile à implémenter dans symfony.


    Il y a un truc bien dans symfony, c'est que, en général, quelqu'un a déjà eu le même problème et, souvent, a pondu un plugin qui le fait.

    J'irais jeter un oeil du côté de chez : sfWidgetFormInputSWFUploadPlugin qui me semble répondre à tes besoins.

    Et devrait pouvoir le faire sans trop avoir à écrire de code. Vive symfony et ces plugins.

Discussions similaires

  1. Réponses: 2
    Dernier message: 11/04/2013, 16h04
  2. Upload fichier volumineux
    Par ascito dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 6
    Dernier message: 24/04/2012, 18h53
  3. Préchargement d'un fichier XML avec barre de progression
    Par arnolem dans le forum Téléchargez
    Réponses: 0
    Dernier message: 30/09/2011, 16h49
  4. Réponses: 0
    Dernier message: 25/02/2010, 11h57
  5. Stocker le contenu des fichier volumineux avec CLOB
    Par wided_instm dans le forum SQL
    Réponses: 18
    Dernier message: 08/02/2007, 10h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo