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

Langage PHP Discussion :

[Upload] Upload d'image multiple avec gestion des erreurs


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 15
    Points : 14
    Points
    14
    Par défaut [Upload] Upload d'image multiple avec gestion des erreurs
    Bonjour,

    Je suis en train d'implémenter un module d'administration permettant de mettre à jour et d'insérer, entre autres des images.

    Mon script php génère (en fonction d'un choix dans une liste déroulante) des couples de champs "textarea" et "file".

    > Ce choix peut être de 1 à 30 (pour l'instant).

    Donc le formulaire unique résultat de ce choix contient tous les couples de champs "textarea" et "file", le nombre de "couples" pouvant aller jusqu'à 30 (donc par conséquent 30 champs de type 'file').

    > Les images à uploader font entre 50 ko et 150 ko.

    > Les images sont renommées suivant un convention de nommage

    > Le descriptif de l'image (champ textarea) et l'url de l'image sont appellés à être stockés dans ma base MySql, après validation du formulaire.

    Cette façon de faire (champs de type "file" multiples et un seul formulaire pour l'upload) n'est est-elle pas dangereuse, je veux dire par là pouvant être souce d'erreur au niveau de l'upload (mémoire, "timesout" du script, souci de connexion,...). Erreur se répercutant sur l'insertion dans la base des données des champs "textarea" et des urls des images uploadées via les champs de type "file".

    Est-ce jouable de procéder de cette manière, ou est-il préférable que, vu le nombre possible d'images à uploader en même temps (par le même formulaire), il soit préférable de passer par des formulaires successifs ?

    Ma principale inquiétude est la gestion des erreurs et sont implémentation dans ce cas.

    Merci d'avance pour vos avis (éclairés)


  2. #2
    Membre habitué Avatar de Cyberbob002
    Inscrit en
    Mai 2003
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 140
    Points : 146
    Points
    146
    Par défaut
    Uploader 4,5 Mo en 30 secondes risque de ne pas être facile (sauf si intranet) donc il y a un gros risque de timeout je dirais.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 15
    Points : 14
    Points
    14
    Par défaut
    Merci pour ta réponse.

    C'est effectivement ce que je craignais.

    Quelle implémentation serai alors la plus judicieuse (et aisée à mettre en place) :

    1 ) plusieurs formulaires sur la même page avec des vérifications
    2 ) des pages successives avec récupération du nombre de pages à générer en fonction du nombre de champs d'upload via des vars $_GET ?

    Je cherche à ne pas pondre une "usine à gaz" au niveau de la gestion des erreurs et de la lourdeur du code...


  4. #4
    Membre habitué Avatar de Cyberbob002
    Inscrit en
    Mai 2003
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 140
    Points : 146
    Points
    146
    Par défaut
    As-tu vraiment besoin de mettre 30 fichiers en même temps ??

    Sinon une solution de dézipage d'une archive placée par FTP est peut être plus logique si tu as besoin d'en mettre à jour beaucoup d'un coup.

  5. #5
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Les réponses données sont justes (limite des 30 secondes, limite de 2Mo), excepté si il s'agit de ton propre serveur, car dans ce cas, tu peux redéfinir ces limites. Voici un script PHP permettant l'upload de plusieurs fichiers, mais quoiqu'il en soit, on est obligé de les sélectionner un par un (bouton parcourir).

    Si c'est une fonction d'administration, peut-être serais-tu intéressé par la réalisation d'un programme propriétaire, comme un EXE sous Windows ou une applet Java ? Ça simplifierait pas mal de chose et te permettrait par la même occasion d'automatiser la sélection du fichier sur le disque / d'ajouter des fonctions de traitements graphiques éventuellement / d'uploader des fichiers de plusieurs méga sans utiliser le ftp, etc...
    De retour parmis vous après 10 ans!!

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 15
    Points : 14
    Points
    14
    Par défaut
    merci pour vos réponses.


    - Concernant la réponse de Cyberbob002 :

    il faut que je reste sur une solution purement HTTP.

    - Concernant la réponse de Sub0 :

    Je ne connais pas JAVA..., et la réalisation d'un programme propriétaire "exe" n'est pas envisageable, au vu de mes compétences en terme de développement d'applications; mais effectivement c'est une solution intéressante en terme de fonctionnallités.

    Je vais donc m'orienter sur un solution php avec une implémentation reposant sur l'utilisation des variables d'url conditionnant l'ajout d'images supplémentaires.

    Merci en tout cas pour vos suggestions.

  7. #7
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Citation Envoyé par Cyberbob002
    As-tu vraiment besoin de mettre 30 fichiers en même temps ??

    Sinon une solution de dézipage d'une archive placée par FTP est peut être plus logique si tu as besoin d'en mettre à jour beaucoup d'un coup.
    Je pense que Cyberbob002 a raison. Tu peux aussi envoyer l'archive sur le serveur avec un formulaire d'upload http... Puis demander à PHP de désarchiver le fichier ZIP. Cela t'évitera de passer par un client ftp...
    De retour parmis vous après 10 ans!!

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2005
    Messages : 147
    Points : 165
    Points
    165
    Par défaut
    une autre solution pourrait être de passer par une iframe pour uploader les images.

    dans ce cas chaque image serait uploadée individuellement lors de son choix (pas de problème niveau limite serveur) et permettrais de rester sur la même page pour l'ensemble des envois.

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 15
    Points : 14
    Points
    14
    Par défaut [résolu]
    Merci pour vos intervention.

    Il semble que j'ai peu être mal formulé ma demande, au vu des dernières réponse :

    Sais-tu que l'upload http est sécurisé et qu'il n'est pas possible d'automatiser l'envoi d'un fichier sur le serveur par le champs <input type="file", et que l'utilisateur est obligé de sélectionner LE fichier avec le bouton "parcourir" ?
    là effectivement je commence à comprendre... que nous ne nous sommes pas compris .

    Je à aucun moment parlé d'automatiser quoi que ce soit mais juste de la meilleure manière d'implémenter un script (php) d'upload pour un nombre d'image n, qui ne sortent évidemment pas de nulle part, mais qui sont choisies par l'utilisateur via un champ de type "file" qui lui permet de "parcourir" sont disque dur pour trouver l'image à uploader...

    Ma question portait juste sur la meilleure implémentation possible d'un script d'upload, permettant a l'utilisateur de placer sucessivement plusieurs images sur un serveur distant...

    Finalement je fonctionne avec une solution du type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    <?php
     
    // code...
     
    if ( (isset($_GET['nbr_action']) ) && ($_GET['nbr_action'] !=="") && ($_GET['nbr_action'] == 1)) {
     
    // mon formulaire avec mon champ de type 'file'
    echo "<form enctype=\"multipart/form-data\" name=\"upload_img_01\" action=\"mapage_upload.php?nbr_action=2\" method=\"POST\">\n";
     
    // code...
     
    echo "</form>\n";
     
    } elseif ( (isset($_GET['nbr_action']) ) && ($_GET['nbr_action'] !=="") && ($_GET['nbr_action'] == 2)) {
     
    // code...
    // test et upload de l'image
     
    echo "<a href=\"mapage_upload.php?nbr_action=1\" >ins&eacute;rer une autre image</a>\n";
    echo "<a href=\"mapage_upload.php?nbr_action=3\">Etape suivante</a>\n";
     
    } elseif ( (isset($_GET['nbr_action']) ) && ($_GET['nbr_action'] !=="") && ($_GET['nbr_action'] == 3)) {
     
    // code...
     
    }
     
     
    ?>
    Peut-être ai-je été mal compris. Je cherchai juste des conseils pour coder "proprement" mon script php.

    Merci en tout cas pour vos réponses.


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [11g] Script arrêt de base avec gestion des erreurs
    Par poupy dans le forum Oracle
    Réponses: 2
    Dernier message: 29/01/2015, 09h26
  2. [Upload] gestion des erreurs lors d'un upload de fichiers
    Par sarah65536 dans le forum Langage
    Réponses: 6
    Dernier message: 22/04/2009, 09h08
  3. Upload multiple avec insertion des noms de titre à chaque image.
    Par lemirandais dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 13/01/2009, 21h55
  4. commande shell avec gestion des erreurs
    Par nymus7 dans le forum Programmation et administration système
    Réponses: 0
    Dernier message: 06/08/2008, 13h59

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