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 :

téléchargerment : image abimée


Sujet :

Langage PHP

  1. #21
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    OK, merci encore

    Donc si au lieu d'avoir mon deuxième fichier comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    if(!isset($_GET['jpg'])) 
        {
           header('location:erreur.php');
        }
    else
        {
           $file = $_GET['jpg'];
        }
    header("Content-Type: image/jpeg"); 
    header("Content-Disposition: attachment; filename=".$file); 
    readfile($file);
    unlink($file);
    exit();
    Je créer ma fonction dans mon premier fichier comme cela:
    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
    <?php
    
    function Arial()
    {
       if(!isset($_GET['jpg'])) 
        {
           header('location:erreur.php');
        }
       else
        {
           $file = $_GET['jpg'];
        }
       header("Content-Type: image/jpeg"); 
       header("Content-Disposition: attachment; filename=".$file); 
       readfile($file);
       unlink($file);
       exit();
    }
    
    
    if(isset($_FILES['photo']))
    { 
         $dossier = 'imgs/';
         $fichier = basename($_FILES['photo']['name']);
         if(move_uploaded_file($_FILES['photo']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
         {
             session_start();
             $_SESSION['upload_fichier'] = "imgs/".$fichier;
              echo 'Upload effectué avec succès !<br>';
               exec("mogrify -resize 640x640 imgs/".$fichier);
                  echo ("<meta http-equiv='Refresh' content='2;URL=telecharg_suppr.php?jpg=imgs/$fichier'>");
    
    
         }
         else //Sinon (la fonction renvoie FALSE).
         {
              echo 'Echec de l\'upload !';
               echo ("<meta http-equiv='Refresh' content='2;URL=index.php'>");
         }
    }
    
    
    ?>
    Comment dois-je appeler cette fonction ?

  2. #22
    Membre actif Avatar de leodi
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2004
    Messages : 172
    Points : 224
    Points
    224
    Par défaut
    Non, si tu fais tout dans la meme page, tu ne dois plus utiliser les $_GET, mais les variables correspondantes.
    je t'invite a revoir tes sources, esseyer de voir comment marche chaque fonction, regarder les valeur de retour, et de comprendre parfaitement ton code, en commentant les lignes ou ce n'est pas clair pour toi, et en regroupant chaque grosse partie (upload / telechargement / suppression) en fonctions.

  3. #23
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    je suis entrain de commenter et de modifier mon code, mais il y a une condition que je ne comprend pas, pourrai tu me l'expliquer ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(move_uploaded_file($_FILES['photo']['tmp_name'], $dossier . $fichier))

  4. #24
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    Donc voila ce que j'ai pu faire:
    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
    <?php
     
    ///////////////////////////////////////////////////////////////////////////////////////
    // Fonction de téléchargement de l'image redimentionner:
    ////////////////////////////////////////////////////////
     
    function telecarg_suppr()
    {
       if(!isset($vrFichier)) 
        {
           header('location:erreur.php');
        }
       else
        {
           $file = $vrFichier;
        }
       header("Content-Type: image/jpeg"); 
       header("Content-Disposition: attachment; filename=".$file); 
       readfile($file);
       unlink($file); // Ici on supprime l'image une foi quelle à été télécharger.
       exit();
    }
     
    ///////////////////////////////////////////////////////////////////////////////////////
     
    ///////////////////////////////////////////////////////////////////////////////////////
    // Upload de l'image + apelle fonction télécharge:
    //////////////////////////////////////////////////
     
    if(isset($_FILES['photo']))
    { 
         $dossier = 'imgs/';
         $fichier = basename($_FILES['photo']['name']);
         $vrFichier = "imgs/".$fichier;
    print($vrFichier);
         if(move_uploaded_file($_FILES['photo']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
         {
     
              echo 'Upload effectué avec succès !<br>';
               exec("mogrify -resize 640x640 ".$vrFichier); // Redimention de l'image avec ImageMagick.
                  telecarg_suppr(); 
                  //echo ("<meta http-equiv='Refresh' content='0;URL=telecharg_suppr.php?jpg=$vrFichier'>");
     
     
         }
         else // Si l'image n'a pas été uploader.
         {
              echo 'Echec de l\'upload !';
               echo ("<meta http-equiv='Refresh' content='2;URL=index.php'>");
         }
    }
     
     
    ?>
    Mais ca me renvoi ces erreurs:
    Warning: Cannot modify header information - headers already sent by (output started at z:\kookatix_interface\interface\kookatix_www\scripting\redimentionne image\upld_redim_640.php:35) in z:\kookatix_interface\interface\kookatix_www\scripting\redimentionne image\upld_redim_640.php on line 11

    Warning: Cannot modify header information - headers already sent by (output started at z:\kookatix_interface\interface\kookatix_www\scripting\redimentionne image\upld_redim_640.php:35) in z:\kookatix_interface\interface\kookatix_www\scripting\redimentionne image\upld_redim_640.php on line 17

    Notice: Undefined variable: file in z:\kookatix_interface\interface\kookatix_www\scripting\redimentionne image\upld_redim_640.php on line 18

    Warning: Cannot modify header information - headers already sent by (output started at z:\kookatix_interface\interface\kookatix_www\scripting\redimentionne image\upld_redim_640.php:35) in z:\kookatix_interface\interface\kookatix_www\scripting\redimentionne image\upld_redim_640.php on line 18

    Notice: Undefined variable: file in z:\kookatix_interface\interface\kookatix_www\scripting\redimentionne image\upld_redim_640.php on line 19

    Notice: Undefined variable: file in z:\kookatix_interface\interface\kookatix_www\scripting\redimentionne image\upld_redim_640.php on line 20

    Warning: unlink(): Permission denied in z:\kookatix_interface\interface\kookatix_www\scripting\redimentionne image\upld_redim_640.php on line 20
    Qu'est-ce qui ne va pas dans mon code ?

  5. #25
    Membre actif Avatar de leodi
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2004
    Messages : 172
    Points : 224
    Points
    224

  6. #26
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    oki,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PHP Warning: Impossible de modifier les informations d'en-tête
    donc il disent:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Car la fonction header doit être appelée avant la génération de la moindre mise en page
    Mis il n'y a pas de mise en page dans mon code, si ?
    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
     
    <?php
     
    ///////////////////////////////////////////////////////////////////////////////////////
    // Fonction de téléchargement de l'image redimentionner:
    ////////////////////////////////////////////////////////
     
    function telecarg_suppr($vrFichier)
     {
     
       header("Content-Type: image/jpeg"); 
       header("Content-Disposition: attachment; filename=".$vrFichier); 
       readfile($vrFichier);
       unlink($vrFichier); // Ici on supprime l'image une foi quelle à été télécharger.
       exit();
     }
     
    ///////////////////////////////////////////////////////////////////////////////////////
     
    ///////////////////////////////////////////////////////////////////////////////////////
    // Upload de l'image + apelle fonction télécharge:
    //////////////////////////////////////////////////
     
    if(isset($_FILES['photo']))
    { 
         $dossier = 'imgs/';
         $fichier = basename($_FILES['photo']['name']);
         $vrFichier = "imgs/".$fichier;
         //print($vrFichier); // Vérification de contenu de la variable avec chemin et nom de l'image.
         if(move_uploaded_file($_FILES['photo']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
         {
     
               exec("mogrify -resize 640x640 ".$vrFichier); // Redimention de l'image avec ImageMagick.
                telecarg_suppr(); // Appel de la fonction telecarg_suppr.
     
         } else { // Si l'image n'a pas été uploader.
     
              echo 'Echec de l\'upload !';
               echo ("<meta http-equiv='Refresh' content='2;URL=index.php'>"); // Redirection ver le formulaire.
         }
    }
     
     
    ?>

  7. #27
    Membre actif Avatar de leodi
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2004
    Messages : 172
    Points : 224
    Points
    224
    Par défaut
    En général il t'indique la ligne. Regarde bien les messages d'erreur.

  8. #28
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    et ben enfaite c'été même pas la peine de passer par la créeation d'un fonction:
    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
    <?php
     
     
    if(isset($_FILES['photo']))
    { 
         $dossier = 'imgs/';
         $fichier = basename($_FILES['photo']['name']);
         $vrFichier = "imgs/".$fichier;
     
         if(move_uploaded_file($_FILES['photo']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
         {
             header("Content-Type: image/jpeg"); // Indispenssable pour la fonction de téléchargement de l'image redimentionner.
             header("Content-Disposition: attachment; filename=".$vrFichier); // Indispenssable pour la fonction de téléchargement de l'image redimentionner.
     
               exec("mogrify -resize 640x640 ".$vrFichier); // Redimention de l'image avec ImageMagick.
     
                readfile($vrFichier); // Ici on lance le téléchargent de l'image uploader.
                unlink($vrFichier); // Ici on supprime l'image une foi quelle à été télécharger.
                exit();
     
         } else { // Si l'image n'a pas été uploader.
     
              echo 'Echec de l\'upload !';
               echo ("<meta http-equiv='Refresh' content='2;URL=index.php'>"); // Redirection ver le formulaire.
         }
    }
     
     
    ?>
    Maitenant ca marche nikel.

    Cepandant il reste deux point a éclaircire:

    • 1) cette ligne déclare les image jpg, il y a t-il moyen de déclarer aussi les image gif, png, tif, et autre ?
    • header("Content-Type: image/jpeg");

    • 2) Comment avant l'upload tester si l'extesnion et jpg ou gif si non ne pas effectuer l'upload ?

  9. #29
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    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
    <?php
     
     
    if(isset($_FILES['photo']))
    { 
       $dossier = 'imgs/';
       $fichier = basename($_FILES['photo']['name']);
       $vrFichier = "imgs/".$fichier;
     
       $extension = strrchr($vrFichier,'.'); // On récupére l'extension du fichier uploader
     
       if ($extension == ".jpg" or $extension == ".gif" or $extension == ".tif" or $extension == ".tiff" or $extension == ".png") 
       {
     
           if(move_uploaded_file($_FILES['photo']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
           {
               header("Content-Type: image/jpeg"); // Indispenssable pour le téléchargement de l'image redimentionner.
               header("Content-Type: image/gif"); // Indispenssable pour le téléchargement de l'image redimentionner.
               header("Content-Type: image/png"); // Indispenssable pour le téléchargement de l'image redimentionner.
               header("Content-Type: image/tiff"); // Indispenssable pour le téléchargement de l'image redimentionner.
               header("Content-Disposition: attachment; filename=".$vrFichier); // Indispenssable pour le téléchargement de l'image redimentionner.
     
                 exec("mogrify -resize 640x640 ".$vrFichier); // Redimention de l'image avec ImageMagick.
     
                  readfile($vrFichier); // Ici on lance le téléchargent de l'image redimentionnée.
                  unlink($vrFichier); // Ici on supprime l'image une foi quelle à été télécharger.
                  exit();
     
           } else { // Si l'image n'a pas été uploader.
     
                echo '!!! Impossible d\'envoyer le fichier selectionné';
                 echo ("<meta http-equiv='Refresh' content='2;URL=index.php'>"); // Redirection ver le formulaire si l'image n'a pas été uploader.
           }
     
       } else {
          echo "Ce n\'est pas une image valide que vous essayer de redimentioner, ou ce type d\'image ne peut être redimentionner ici ou bien ce n'est même pas un image";
       }
    }
     
     
    ?>

  10. #30
    Membre actif Avatar de leodi
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2004
    Messages : 172
    Points : 224
    Points
    224
    Par défaut
    Citation Envoyé par koKoTis Voir le message
    • 1) cette ligne déclare les image jpg, il y a t-il moyen de déclarer aussi les image gif, png, tif, et autre ?
    • header("Content-Type: image/jpeg");
    Oui, il faut modifier le type mime correspondant a l'image (pour ca regarde l'extension, et mets le bon type mime :
    http://fr.wikipedia.org/wiki/Type_MIME )

    Citation Envoyé par koKoTis Voir le message
    • 2) Comment avant l'upload tester si l'extesnion et jpg ou gif si non ne pas effectuer l'upload ?
    Google : http://damienalexandre.fr/Upload-d-image-en-PHP.html

    Bon courage,
    Paul

  11. #31
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    ben je vener juste de poster le script finale, ça y est je l'ai terminé, ta pas eu le temp de voir

  12. #32
    Membre actif Avatar de leodi
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2004
    Messages : 172
    Points : 224
    Points
    224
    Par défaut
    Il faudrait ne renvoyer qu'un seul type mime, et non pas tous, comme tu fais actuellement.
    if if if

  13. #33
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    comment faire ?

  14. #34
    Membre actif Avatar de leodi
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2004
    Messages : 172
    Points : 224
    Points
    224
    Par défaut
    Regarde ton code, esseye de bien comprendre comment il fonctionne.
    Pour effectuer un upload d'image. c'est indispensable. Meme pour coder en général. en effet si tu ne sais pas ce que fais ton code, une personne mal intentionnée elle le saura
    Ce n'est pas bien dure, de plus, tu as la solution dans ton code.

    Une aide :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ($extension == ".jpg" or $extension == ".gif" or $extension == ".tif" or $extension == ".tiff" or $extension == ".png")
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
               header("Content-Type: image/jpeg"); // Indispenssable pour le téléchargement de l'image redimentionner.
               header("Content-Type: image/gif"); // Indispenssable pour le téléchargement de l'image redimentionner.
               header("Content-Type: image/png"); // Indispenssable pour le téléchargement de l'image redimentionner.
               header("Content-Type: image/tiff"

  15. #35
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    je comprend pas

  16. #36
    Membre actif Avatar de leodi
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2004
    Messages : 172
    Points : 224
    Points
    224
    Par défaut
    Pour forcer le téléchargement d'une image, ou d'un fichier en général, tu dois spécifier son type mime au navigateur.

    Là tu lui envois plusieurs type mime différents. ce qui fait que le navigateur qui ouvrira ta page ne saura pas forcément lequel est le bon, et pourra proposer un jpg alors que l'image est un gif.
    C'est pour ca que tu dois faire des tests, et ne renvoyer qu'un seul type mime, en fonction des données que tu as (ici c'est l'extension, d'ailleur tu les a même testé dans la ligne que j'ai copié dans mon précédent post).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SI ext = .gif
    - header de gif
    SINON ext = .jpg
    - header de jpg
    SINON ext = .tiff
    - header de tiff

  17. #37
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    oui mai dans ce cas il faudra que je mette les code pour redimensionner télécharger et supprimer 3 fois ?

  18. #38
    Membre actif Avatar de leodi
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2004
    Messages : 172
    Points : 224
    Points
    224
    Par défaut
    Non, c'est juste pour l'affichage des bons headers. Pour l'upload / redim / delete ca reviens au même, quelque soit le type de l'image.

  19. #39
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    donc voici la code fonctionel:
    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
    <?php
     
    // /////////////////////////////////////////////////////////////////////////////////////
    // Sujet ici: http://www.developpez.net/forums/d620549/php/langage/fichiers/telechargerment-image-abimee/
    // Sujet ici: http://www.developpez.net/forums/d620374/php/scripts/redimentioner-image-imag-magik/
    /////////////////////////////////////////////////////////////////////////////////////
     
     
     
    if(isset($_FILES['photo']))
    { 
       $dossier = 'imgs/';
       $fichier = basename($_FILES['photo']['name']);
       $vrFichier = "imgs/".$fichier;
     
       $extension = strrchr($vrFichier,'.'); // On récupére l'extension du fichier uploader
     
    ///////////////////////////////////////////////////////////////////////////////////////
    // Pour ajouter des extension c'est ici:
    ///////////////////////////////////////////////////////////////////////////////////////
     
       if ($extension == ".jpg") { header("Content-Type: image/jpeg"); } // Indispenssable pour le téléchargement de l'image redimentionner.
       if ($extension == ".gif") { header("Content-Type: image/gif"); } // Indispenssable pour le téléchargement de l'image redimentionner.
       if ($extension == ".tif" or $extension == ".tiff") { header("Content-Type: image/tiff"); } // Indispenssable pour le téléchargement de l'image redimentionner.
       if ($extension == ".png") { header("Content-Type: image/png"); } // Indispenssable pour le téléchargement de l'image redimentionner.
     
     
       if ($extension == ".jpg" or $extension == ".gif" or $extension == ".tif" or $extension == ".tiff" or $extension == ".png") 
    ///////////////////////////////////////////////////////////////////////////////////////
     
       {
     
           if(move_uploaded_file($_FILES['photo']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
           {
     
               header("Content-Disposition: attachment; filename=".$vrFichier); // Indispenssable pour le téléchargement de l'image redimentionner.
     
                 exec("mogrify -resize 640x640 ".$vrFichier); // Redimention de l'image avec ImageMagick.
     
                  readfile($vrFichier); // Ici on lance le téléchargent de l'image redimentionnée.
                  unlink($vrFichier); // Ici on supprime l'image une foi quelle à été télécharger.
                  exit();
     
           } else { // Si l'image n'a pas été uploader.
     
                echo '!!! Impossible d\'envoyer le fichier selectionné';
                 echo ("<meta http-equiv='Refresh' content='2;URL=index.php'>"); // Redirection ver le formulaire si l'image n'a pas été uploader.
           }
     
       } else {
          echo "Ce n\'est pas une image valide que vous essayer de redimentioner, ou ce type d\'image ne peut être redimentionner ici ou bien ce n'est même pas un image";
       }
    }
     
     
    ?>
    C'est bon comme ça ?

  20. #40
    Membre actif Avatar de leodi
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2004
    Messages : 172
    Points : 224
    Points
    224
    Par défaut
    Tu pourrais vérifier que l'image en soit bien une, grâce a GD (avec la fonction getimagesize : google). On peut meme aller jusqu'à renommer l'image, pour des raisons de sécurité, mais comme tu la supprimes juste après ca devrait être bon.

    Un peu de lecture : http://ha.ckers.org/blog/20070604/pa...h-getimagesize , et http://209.85.135.104/search?q=cache...ient=firefox-a (en cache car erreur 500 en ce moment : /)

    Edit : j'ai vu

Discussions similaires

  1. Télécharger images pour boutons
    Par mehdiyou dans le forum VB.NET
    Réponses: 16
    Dernier message: 09/11/2010, 02h39
  2. Réponses: 33
    Dernier message: 12/03/2009, 17h37
  3. bouton "télécharger image"
    Par maze.alex dans le forum IHM
    Réponses: 4
    Dernier message: 04/11/2008, 16h37
  4. [MySQL] Télécharger images stockées dans mysql
    Par else_if dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 14/05/2008, 05h53
  5. Télécharger image vers poste client
    Par Thomad dans le forum Langage
    Réponses: 4
    Dernier message: 01/08/2006, 10h34

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