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

Contribuez / Téléchargez Sources et Outils PHP Discussion :

Classe d'Upload et Redimensionnement


Sujet :

Contribuez / Téléchargez Sources et Outils PHP

  1. #41
    Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 147
    Points : 52
    Points
    52
    Par défaut re
    re

    1/ Ton lien pour tester ne peut pas être "http://xxxx.free.fr//sites/essai/" car cette adresse est celle d'un dossier et non pas d'un fichier.
    Étonné !!!. Quand on pointe vers un dossier contenant un fichier index.php ou index.html celui-ci s'ouvre auto !!!! puisque que j'ai renommé le fichier d'origine (je ne l'avais pas signalé).

    2/ suppression de : $up->Get_Reload_page(); --> c'est Ok

    3/ Tout est ok et les images sont bien envoyées dans le dossier prédéfini sur le serveur malgré l'erreur de redir avant suppression de la ligne en 2/.

    NOTA:
    Je dois obligatoirement mettre un .htaccess avec php1 pour que cela fonctionne malgré la version 2.5
    Erreur: Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /mnt/109/sdb/9/d/xxxxx/sites/essai/Upload_2.5.php on line 6
    Merci

  2. #42
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 380
    Points : 10 410
    Points
    10 410
    Par défaut
    Bonjour,

    1/ Si on indique un lien vers un dossier sans indiquer de nom de fichier alors le serveur tente toujours d'ouvrir un fichier nommé index.html ou index.php

    2/ L'erreur de redirection doit venir de la configuration (arborescence) de tes fichiers.

    4/ Il me semble que chez free, l'indication php1 sert pour indiquer l'utilisation de php 5.1 (sinon pas impossible que cela utilise toujours php4...) Donc évidemment c'est nécessaire puisque la classe en version 2.5 est compatible php 5.1 (mais pas php4).

    Tu devrais faire plus de tutos avant de coder. Toutes les questions que tu as posées après ton premier message viennent d'un manque de connaissance de php mais n'ont rien à voir avec l'utilisation de la classe elle-même. Et ce sujet n'a pas pour vocation d'apprendre les bases de php...

  3. #43
    Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 147
    Points : 52
    Points
    52
    Par défaut merci
    Merci

    Et Désolé de n'être que débutant et Désolé pour le dérangement

  4. #44
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 380
    Points : 10 410
    Points
    10 410
    Par défaut
    Bonjour,

    Y'a pas de souci d'être débutant, on est tous passés par là et si tu regarde mon compteur de messages tu peux constater que j'ai passé beaucoup de temps pour répondre à des questions

    Juste le problème est que dans un sujet spécialisé mieux vaut ne pas trop s'éparpiller sinon les lecteurs qui cherchent de l'information doivent ensuite faire beaucoup de tri avant de trouver des messages en rapport direct avec le sujet.

    C'est donc pour plus de clarté et garder une bonne cohérence du sujet que je demande de ne poser ici que des questions concernant directement l'utilisation de la classe et autant que possible des questions auxquelles je n'ai pas déjà répondu dans le mode d'emploi.

    Ne vois rien de personnel dans mes remarques, c'est juste une question d'organisation et de logique Il s'agit simplement de poser les bonnes questions au bon endroit



    Lien vers la classe

  5. #45
    Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 147
    Points : 52
    Points
    52
    Par défaut re
    Re

    Aucuns soucis et no problems

    Seulement, débutant ou pas, il est souvent difficile de comprendre le développement d'un autre et surtout de pouvoir l'adapter à ces besoins...

    Peut-être aurais-je dû poser les questions sur une autre partie du forum au sujet de la class ??

    Merci

    Cordialement

  6. #46
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 380
    Points : 10 410
    Points
    10 410
    Par défaut
    Bonjour,

    En complément de la classe php dont il est question dans ce sujet, je viens de mettre en ligne une classe javascript ici qui permet l'upload de gros fichiers par fragments (chunk), avec fonctionnalités de reprise d'upload, affichage des informations en temps réel, styles événementiels et file d'attente (queuing). Elle permet de surpasser les limitations serveur "upload_max_filesize", "post_max_size" et "max_file_uploads". A noter que les deux classes sont complètement indépendantes.

    Je ferai peut-être une interface pour lier les deux à la rentrée... mais bon c'est pas urgent dans le sens où si c'est le redimensionnement d'images qui vous intéresse, la mémoire serveur disponible est tout juste suffisante (et pas toujours) pour traiter des images dont le poids est dans la limite de la config "upload_max_filesize" (8 à 12 Mo mini aujourd'hui). L'avantage de lier les deux serait donc surtout intéressante pour l'upload multiple avec redimensionnement (pour surpasser "post_max_size" et "max_file_uploads")...

    Bonnes vacances

  7. #47
    Membre habitué Avatar de spawns
    Homme Profil pro
    Inscrit en
    Juillet 2004
    Messages
    558
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 558
    Points : 193
    Points
    193
    Par défaut Souci nombre image 3.0
    Bonjour,
    et merci pour cette class de fou qui m'aide bien dans la création de mes back-office.
    par contre j'ai un petit blem avec le nombre d'image uploadée
    j'ai une config style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    $up = new Telechargement('albums','form1','photo');
    $extensions = array('jpg','JPG','jpeg','JPEG');
    $up->Set_Extensions_accepte ($extensions);
     
    $up->Set_Redim ('200','150', array('_min'));
     
    $up->Set_Redim ('1024','768',array('_max'));
     
    $up->Set_Renomme_fichier('incr');
    $up->Set_Nomme_fichier('photo.jpg');
     
    $up->Upload('reload');
    si j'en envoie 1 ou 2 pas de souci, mais a partir de 3 ou +
    les dernières ne sont pas uploadées.

    par contre si je n'utilise pas le renommage cela fonctionne normalement.

    Une idée d'ou cela peux venir ???
    Merci d'avance de votre aide

  8. #48
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 380
    Points : 10 410
    Points
    10 410
    Par défaut
    Salut,

    J'ai recopié et testé ton code en local et sur un serveur distant. J'ai essayé avec 2, 3, 4 et 5 images en téléchargement multiple. Aucun souci détecté, tout fonctionne correctement.

    Tu n'as pas de message d'erreur en retour ? Peut-être as-tu dépassé la valeur post_max_size du serveur et tu n'as pas configuré la classe pour quelle détecte cette erreur ? Tu as le même problème en local et en distant, et quelque soit la taille des photos ?

    Difficile de t'aider plus puisque chez moi tout est ok et je n'arrive pas à reproduire ton problème...

    Au passage inutile de spécifier la variante en majuscules dans les extensions autorisées, la classe le fait automatiquement.
    Donc $extensions = array('jpg','jpeg'); est suffisant dans ton exemple.

  9. #49
    Membre habitué Avatar de spawns
    Homme Profil pro
    Inscrit en
    Juillet 2004
    Messages
    558
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 558
    Points : 193
    Points
    193
    Par défaut
    Bonjour, et merci de me répondre.
    j'ai fait les tests en local et en distant et il y a exactement le même problème.

    donc si je demande de renommer les images je peux en uploader que 2 a partir de la 3eme et les suivantes les images ne sont pas prises en compte.

    Par contre si je ne demande pas le renommage cela fonctionne normalement je peux uploader autant d'image de je veux.

    petite question en plus, j'aurai besoin de récupérer les nom des images uploader pour les insérer en BDD.
    comment puis je procéder ??

    Merci de ton aide.

    Cdt

  10. #50
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 380
    Points : 10 410
    Points
    10 410
    Par défaut
    Pour récupérer le nom des images utilise le tableau des résultats, c'est expliqué dans les exemples et le mode d'emploi.

    Donc concernant ton problème tu dis qu'en supprimant la ligne $up->Set_Renomme_fichier('incr'); tout fonctionne correctement ?

  11. #51
    Membre habitué Avatar de spawns
    Homme Profil pro
    Inscrit en
    Juillet 2004
    Messages
    558
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 558
    Points : 193
    Points
    193
    Par défaut
    non,
    cela fonctionne si je retire la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $up->Set_Nomme_fichier('photo.jpg');
    par contre concernant le préfixe, j'ai essayé cela mais cela ne marche pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $up->Set_Redim ('200','150', array('','','mini_'));
    comment faire pour ajouter uniquement un préfixe ???

  12. #52
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 380
    Points : 10 410
    Points
    10 410
    Par défaut
    Citation Envoyé par spawns Voir le message
    non,
    cela fonctionne si je retire la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $up->Set_Nomme_fichier('photo.jpg');
    Même si tu ne la retire pas cela fonctionne mais évidemment tous les fichiers suivants vont écrasés les précédents si tu n'utilises pas conjointement la fonction "Set_Renomme_fichier".

    Et après tests et re tests, ces deux fonctions fonctionnent correctement. Je ne vois pas comment elles peuvent ne pas fonctionner chez toi



    Citation Envoyé par spawns Voir le message
    par contre concernant le préfixe, j'ai essayé cela mais cela ne marche pas
    $up->Set_Redim ('200','150', array('','','mini_'));

    comment faire pour ajouter uniquement un préfixe ???
    Là effectivement il y avait un petit bug, c'est corrigé dans la nouvelle version 3.1 en ligne.

  13. #53
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 380
    Points : 10 410
    Points
    10 410
    Par défaut
    Bonjour,

    Version 3.1 en ligne.

    - Correction d'un bug si on utilisait la fonction Set_Redim avec la définition d'un préfixe (uniquement).

  14. #54
    Membre habitué Avatar de spawns
    Homme Profil pro
    Inscrit en
    Juillet 2004
    Messages
    558
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 558
    Points : 193
    Points
    193
    Par défaut
    le bug concernant le préfixed est ok
    mais pour le renommage cela ne fonctionne toujours pas chez moi local ou a distance

    j'ai un champs multiple
    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
    ...		
    <form enctype = "multipart/form-data" action = "ajouter_image.html" method = "post" onsubmit = "return valider();Verif_attente('message_tele')">		
    	<input name = "photo[]" type = "file" multiple = "multiple" size = "70" /><br />	 
     
    	<br /><br />
    			<input  type="submit" value="Envoyer les images" id="envoyer" name = "form1"><br />
     
     
     
    $up = new Telechargement('albums/','form1','photo');
     
    $extensions = array('jpg','jpeg');
    $up->Set_Extensions_accepte ($extensions);
    $up->Set_Redim ('200','150', array('', '' ,'mini_'));
    $up->Set_Redim  ('1024','768',array('', '', 'max_'));
    $up->Set_Renomme_fichier('incr');
    $up->Set_Nomme_fichier('photo.jpg');
     
    $up->Upload();
    cela donne se tableau en sortie.
    a partir de la 2eme image, elle est ecrasé par la troisieme etc...
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    Array
    (
        [identifiant] => form1
        [champ] => photo
        [resultat] => Array
            (
                [0] => Array
                    (
                        [1406628866/] => Array
                            (
                                [0] => Array
                                    (
                                        [nom_ini] => computer_0097.jpg
                                        [nom] => mini_photo.jpg
                                        [dim] => 200x150
                                    )
     
                                [1] => Array
                                    (
                                        [nom_ini] => computer_0097.jpg
                                        [nom] => max_photo.jpg
                                        [dim] => 1024x768
                                    )
     
                            )
     
                    )
     
                [1] => Array
                    (
                        [1406628866/] => Array
                            (
                                [0] => Array
                                    (
                                        [nom_ini] => computer_0098.jpg
                                        [nom] => mini_photo1.jpg
                                        [dim] => 200x150
                                    )
     
                                [1] => Array
                                    (
                                        [nom_ini] => computer_0098.jpg
                                        [nom] => max_photo1.jpg
                                        [dim] => 1024x768
                                    )
     
                            )
     
                    )
     
                [2] => Array
                    (
                        [1406628866/] => Array
                            (
                                [0] => Array
                                    (
                                        [nom_ini] => computer_0101.jpg
                                        [nom] => mini_photo1.jpg
                                        [dim] => 200x150
                                    )
     
                                [1] => Array
                                    (
                                        [nom_ini] => computer_0101.jpg
                                        [nom] => max_photo1.jpg
                                        [dim] => 1024x768
                                    )
     
                            )
     
                    )
     
            )
     
    )

  15. #55
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 380
    Points : 10 410
    Points
    10 410
    Par défaut
    Citation Envoyé par spawns Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ...		
    <form enctype = "multipart/form-data" action = "ajouter_image.html" method = "post" onsubmit = "return valider();Verif_attente('message_tele')">
    Salut,

    Remarque que c'est déjà un miracle si tu obtiens quelque chose avec un formulaire dont l'attribut action renvoie vers une page html (ajouter_image.html) pour être traité par du code php. Tu fais de l'url rewriting ?

    Le mieux c'est de refaire un test sur de bonnes bases. Copies le code ci-dessous dans un fichier que tu mettra dans le dossier 'Exemples' (au même niveau que les autres exemples dans le dossier de test de la classe).
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    <?php
    //Si on travaille en utf-8 (recommandé)
    header('Content-type: text/html; charset=UTF-8');
     
    // Appel de la classe
    require('../Classe_Upload.php');
     
    require('../adresses_dossiers.php');
     
    $up = new Telechargement($dossier_photo,'form1','photo');
     
    $extensions = array('jpg','jpeg');
    $up->Set_Extensions_accepte ($extensions);
    $up->Set_Redim ('200','150', array('','','mini_'));
    $up->Set_Redim  ('1024','768',array('','','max_'));
    $up->Set_Renomme_fichier('incr');
    $up->Set_Nomme_fichier('photo.jpg');
     
    $up->Upload('reload');
     
    $messages_upload = $up->Get_Tab_message();
    $messages_upload_html = null;
    foreach ($messages_upload as $num) foreach ($num as $value) $messages_upload_html .= '<p>- '.htmlspecialchars($value).'</p>';
     
    $tableau_resultat = $up->Get_Tab_result();
    ?>
    <!doctype html>
    <html lang="fr">
    <head>
    <meta charset="UTF-8" />
    <title>Redimentionnements avec suffixes ou préfixes</title>
    <script type="text/javascript">
    <!--
    function Verif_attente(id_attente)
    {              
    	var id_attente = document.getElementById(id_attente);
     
    	if (id_attente)
    	{
    		id_attente.innerHTML = 'Patientez...';  
     
    		id_attente.style.fontWeight="bold";
    		id_attente.style.fontSize="1.5em";         
    	}
    }
    -->
    </script>
    <style type="text/css">
    body {font-family:Arial, Helvetica, sans-serif; font-size:12px;}
    </style>
    </head>
    <body>
        <form enctype = "multipart/form-data" action = "#" method = "post" onsubmit = "Verif_attente('message_tele')">
        <p><label for="image">Images jpg, jpeg (supporte le téléchargement multiple) </label><input name="photo[]" id="image" type="file" multiple="multiple" /></p>
        <p><input type="submit" name="form1" value="Envoyez" /></p>
        </form>
     
        <div id = "message_tele" style="margin-top:20px;">
        <?= $messages_upload_html; ?>
        </div>
     
        <div style="margin-top:50px">
        <?php if(!empty($tableau_resultat))
        {
            echo 'tableau des résultats :';
            echo '<pre>';
            print_r($tableau_resultat);
            echo '</pre>';
        }
        ?>
        </div>
    </body>
    </html>
    En testant avec des noms de fichiers identiques aux tiens, voici ce que j'obtiens dans le tableau des résultats :
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    Array
    (
        [identifiant] => form1
        [champ] => photo
        [resultat] => Array
            (
                [0] => Array
                    (
                        [abciweb/Classes_POO/Classe_Upload/Tests-Scripts-Upload/PHOTO] => Array
                            (
                                [0] => Array
                                    (
                                        [nom_ini] => computer_0097.jpg
                                        [nom] => mini_photo.jpg
                                        [dim] => 200x133
                                    )
     
                                [1] => Array
                                    (
                                        [nom_ini] => computer_0097.jpg
                                        [nom] => max_photo.jpg
                                        [dim] => 950x633
                                    )
     
                            )
     
                    )
     
                [1] => Array
                    (
                        [abciweb/Classes_POO/Classe_Upload/Tests-Scripts-Upload/PHOTO] => Array
                            (
                                [0] => Array
                                    (
                                        [nom_ini] => computer_0098.jpg
                                        [nom] => mini_photo_1.jpg
                                        [dim] => 200x150
                                    )
     
                                [1] => Array
                                    (
                                        [nom_ini] => computer_0098.jpg
                                        [nom] => max_photo_1.jpg
                                        [dim] => 1024x768
                                    )
     
                            )
     
                    )
     
                [2] => Array
                    (
                        [abciweb/Classes_POO/Classe_Upload/Tests-Scripts-Upload/PHOTO] => Array
                            (
                                [0] => Array
                                    (
                                        [nom_ini] => computer_0099.jpg
                                        [nom] => mini_photo_2.jpg
                                        [dim] => 200x133
                                    )
     
                                [1] => Array
                                    (
                                        [nom_ini] => computer_0099.jpg
                                        [nom] => max_photo_2.jpg
                                        [dim] => 950x633
                                    )
     
                            )
     
                    )
     
                [3] => Array
                    (
                        [abciweb/Classes_POO/Classe_Upload/Tests-Scripts-Upload/PHOTO] => Array
                            (
                                [0] => Array
                                    (
                                        [nom_ini] => computer_0101.jpg
                                        [nom] => mini_photo_3.jpg
                                        [dim] => 200x150
                                    )
     
                                [1] => Array
                                    (
                                        [nom_ini] => computer_0101.jpg
                                        [nom] => max_photo_3.jpg
                                        [dim] => 1024x768
                                    )
     
                            )
     
                    )
     
            )
     
    )
    c'est bien le résultat attendu, et si je poursuis avec d'autres upload, l'incrémentation se faite correctement avec "mini_photo_4.jpg", "max_photo_4.jpg" etc.

    Et au pire si c'est le système d'incrémentation qui pose problème (mais je n'arrive pas à trouver dans quelles circonstances puisque chez moi il fonctionne) tu peux toujours utiliser la fonction "Set_Renomme_fichier" sans argument, soit "Set_Renomme_fichier()", ce qui ajoutera un identifiant unique plutôt qu'un nombre incrémenté.

  16. #56
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 380
    Points : 10 410
    Points
    10 410
    Par défaut
    Bonjour,

    Petit mot pour dire que j'ai mis à jour le code de l'autre solution d'upload en ajax pour permettre de faire plus facilement des redimensionnements d'images (exemple fourni) ou plus généralement de modifier le fichier avant son déplacement vers son emplacement définitif.

    J'en profite pour indiquer la différence entre ces deux solutions d'upload que vous pouvez retrouver dans mon symbole

    Classe php d'upload (celle dont il est question dans ce topic) :
    Avantages :
    - Compatible tous navigateurs, seule la possibilité d'upoad multiple depuis un même bouton de téléchargement dépend des navigateurs.
    - De nombreuses fonctions pré programmées faciles à utiliser.
    - Plus accessible aux débutants.
    Inconvénients :
    - Ne peut pas télécharger des fichiers plus gros que la directive "upload_max_filesize" du serveur (mais l'erreur est gérée).
    - Pas d'information en temps réel des informations concernant l'upload (il faut attendre le retour d'information une fois l'upload terminé).
    - Pas de possibilité d'annuler individuellement des fichiers en cours d'upload.


    Classe d'upload Ajax + classe php propose approximativement les avantages et inconvénients inverses de la première solution :
    Inconvénients :
    - Compatible uniquement avec les navigateurs HTML5 "récents" (minimum IE10).
    - Moins de fonctions sont implémentées côté php (mais les essentielles sont présentes).
    - Plus de paramétrages à faire car il faut configurer la classe ajax (très simple), le code html et la classe php. Accessible aux débutants appliqués.
    Avantages :
    - Aucune limitation serveur concernant la taille ou le nombre de fichiers.
    - De très nombreuses informations (paramétrables) concernant l'état de l'upload sont disponibles en temps réel.
    - Possibilité d'annuler individuellement le téléchargement de certains fichiers (en cas d'upload multiple).
    - Et une fonctionnalité très intéressante pour les gros fichiers : reprise d'upload possible en utilisant la partie sauvegardée (système de sauvegarde automatiquement) après une interruption volontaire ou non du téléchargement.


    A vous de faire votre choix

    Ou même éventuellement utiliser les deux... En effet si vous utilisez la seconde solution, une option de la classe ajax permet de basculer la destination du formulaire vers un traitement plus classique en cas de navigateurs incompatibles. Si donc vous souhaitez un maximum de compatibilité avec tous les navigateurs vous pouvez rediriger vers le script de la première solution si la seconde n'est pas compatible. Cela donne plus de travail mais vous obtenez ainsi une solution "universelle" avec si possible des informations en temps réel durant l'upload. Bien entendu, pour que cela en vaille la peine, il faut que l'utilisation principale ne soit pas l'upload de fichiers dépassant la directive "upload_max_filesize" du serveur car seule la classe ajax peut surpasser cette valeur

  17. #57
    Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Janvier 2015
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    bonjour

    merci pour ce travail ,néanmoins j'ai quelques questions car je connais rien en php ,et veuillez excuser mon ignorance svp

    j'ai pas compris si j'édite le fichier "Classe_Upload" si oui ou dois écrire çela par exemple ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $up = new Telechargement('Documents','form1','doc');
     
    $extensions = array('pdf','txt');
     
    $up->Set_Extensions_accepte ($extensions);
     
    $up->Upload('reload');
    veuillez m'excuser encore une fois

  18. #58
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 380
    Points : 10 410
    Points
    10 410
    Par défaut
    Salut,

    Oui effectivement, ce code est un exemple d'utilisation de la classe.

    Il y a plusieurs fichiers d'exemples et un mode d'emploi dans le dossier proposé en téléchargement.

  19. #59
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2015
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Février 2015
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    Bravo pour cette classe qui est très intéressante.
    Moi j'ai une question.

    J'ai deux fichier un avec le formulaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <form enctype = "multipart/form-data" action = "mon_fichier_pour_valider.php" method = "post">	  
    <input name = "doc" type = "file" />				 
    <input type = "submit" name = "form1" value = "Envoyez"  />	
    </form>
    et l'autre pour valider le formulaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $up = new Telechargement($dossier_pdf,'form1','doc');
     $extensions = array('jpg','jpeg','png','gif');
    $up->Set_Extensions_accepte ($extensions);
    $up->Set_Redim ('200','150', array('_min'));
    $up->Set_Message_court('upload ok');
    $up->Upload('reload');
    $messages = $up->Get_Tab_message();
     
    etc...
    Ma question comment il faut faire pour récupérer les variables passés avec la methode POST pour uploader le fichier?

    Par avance merci .

    Daniel

  20. #60
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 380
    Points : 10 410
    Points
    10 410
    Par défaut
    Salut,

    Mieux vaut mettre le traitement php dans le même fichier que le formulaire.

    En effet $up->Upload('reload'); va recharger la page dans laquelle il se trouve.
    Par ailleurs il te faudrait enregistrer "$messages" dans une variable de session pour pouvoir le retransmettre dans la page appelante.
    Et puis faire un header de redirection pour retourner vers la page appelante.

    Fais plutôt comme dans les exemples en mettant le code php dans la même page que le formulaire, la classe est optimisée pour fonctionner de cette manière.

Discussions similaires

  1. upload et redimensionnement d'image
    Par tim1789 dans le forum Langage
    Réponses: 2
    Dernier message: 20/06/2011, 09h52
  2. upload puis redimensionnement d'image limité à 2 Mo
    Par franckcl dans le forum Langage
    Réponses: 2
    Dernier message: 22/08/2010, 12h38
  3. [GD] Upload et redimensionnement d'images volumineuses
    Par migli dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 10/06/2010, 11h12
  4. Réponses: 1
    Dernier message: 18/01/2008, 16h18

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