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] Est-il possible de redomenssionner une image avant l'upload?


Sujet :

Langage PHP

  1. #1
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 096
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 096
    Points : 944
    Points
    944
    Par défaut [Upload] Est-il possible de redomenssionner une image avant l'upload?
    Bonjour tous

    Je fais un upload script pour uploader mes images.

    J'aimerais que mes images aient une largeur maximal de 500px et une hauteur de 500px aussi.

    Est- il possible de faire se redimenssionnement avant?
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    move_uploaded_file($tempFile,$targetFile);

    Voci mon code
    Code PHP : 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
     
    $tempFile = $_FILES['Filedata']['tmp_name'];
    $targetPath = $_SERVER['DOCUMENT_ROOT'] .'/upload/test/uploaded/';
     
    $nameFile = $_FILES['Filedata']['name'];
    $a = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûýýþÿŔŕ';
     $b = 'aaaaaaaceeeeiiiidnoooooouuuuybsaaaaaaaceeeeiiiidnoooooouuuyybyRr';
    $nameFile = utf8_decode($nameFile);    
    $nameFile = strtr($nameFile, utf8_decode($a), $b);
    $nameFile = strtolower($nameFile); 
     
    $nameFile = preg_replace('/([^.a-z0-9]+)/i', '_', $nameFile); 
     
    $targetFile =  str_replace('//','/',$targetPath) . $nameFile;
     
    /*
    FAIRE LE REDIMENSSIONNEMENT ICI OU ENCORE AVANT LE UPLOAD, POUR QUE LE UPLOAD SOIT PLUS RAPIDE
    */
    move_uploaded_file($tempFile,$targetFile);

    Merci
    Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Avant l'upload : non ; PHP ne peux pas intervenir sur un fichier qu'il n'a pas encore recu.

    Une fois le fichier uploadé le redimensionnement peut se faire quand tu le souhaites.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 096
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 096
    Points : 944
    Points
    944
    Par défaut
    Salut et merci,

    il y a un truc que je ne comprend pas dans les upload.
    On est d'accord ceci fait un upload
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    move_uploaded_file($tempFile,$targetFile);
    Mais ceci, ca fait la meme chose sans la fonction move_upload???
    non?

    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
    // Paramètres définis par l'utilisateur
     
    define('IMG_DIR', /* Insérez ici le chemin de destination jusqu'à votre dossier d'image */);
    $maxSizeX = /* Insérez ici la largeur maximale de l'image qui sera générée */;
    $maxSizeY = /* Insérez ici la hauteur maximale de l'image qui sera générée */;
    $imgQuality = /* Insérez ici le niveau de qualité JPEG à utiliser (max 100, min 0) */;
     
     
    // Header
     
    header("Content-type: image/jpeg");
     
     
    // Trouver le format de l'image d'entrée)
     
    $imageFormat = explode('.', strtolower($_GET['image']));
     
    if ($imageFormat[1] == 'jpg' OR $imageFormat[1] == 'jpeg')
    	$thumbnail = imagecreatefromjpeg(IMG_DIR.$_GET['image']);
    if ($imageFormat[1] == 'gif')
    	$thumbnail = imagecreatefromgif(IMG_DIR.$_GET['image']);
    if ($imageFormat[1] == 'png')
    	$thumbnail = imagecreatefrompng(IMG_DIR.$_GET['image']);
     
     
    // Calcul de la nouvelle taille
     
    if (imagesx($thumbnail) > imagesy($thumbnail))
    {
    	$newSizeX = $maxSizeX;
    	$newSizeY = $maxSizeX * imagesy($thumbnail) / imagesx($thumbnail);
    }
    if (imagesy($thumbnail) > imagesx($thumbnail))
    {
    	$newSizeY = $maxSizeY;
    	$newSizeX = $maxSizeY * imagesx($thumbnail) / imagesy($thumbnail);
    }
    if (imagesy($thumbnail) == imagesx($thumbnail))
    {
    	$newSizeY = $maxSizeY;
    	$newSizeX = $maxSizeY;
    }
     
     
    // Calculs au cas où les tailles dépasseraient toujours la taille maximale
     
    if ($newSizeY > $maxSizeY)
    {
    	$newSizeX = $maxSizeY * $newSizeX / $newSizeY;
    	$newSizeY = $maxSizeY;
    }
    if ($newSizeX > $maxSizeX)
    {
    	$newSizeY = $maxSizeX * $newSizeY / $newSizeX;
    	$newSizeX = $maxSizeX;
    }
     
     
    // Génération de la miniature
     
    $finishedImage = imagecreatetruecolor($newSizeX, $newSizeY);
     
    imagecopyresampled($finishedImage, $thumbnail, 0, 0, 0, 0, $newSizeX, $newSizeY, imagesx($thumbnail), imagesy($thumbnail));
     
    imagedestroy($thumbnail);
     
    $finishedImage = imagejpeg($finishedImage, NULL, $imgQuality);
     
    echo $finishedImage;
     
    ?>
    Je ne pourrais pas remplacer le
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_FILES['Filedata']['tmp_name']
    Puisque mon formulaire est en post?
    Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    On est d'accord ceci fait un upload
    Non, cette fonction deplace un fichier telechargé du repertoire temporaire d'upload vers un repertoire de destination.
    Les fichiers temporaires sont détruits a la fin du script

    Mais ceci, ca fait la meme chose sans la fonction move_upload???
    Le script que tu nous montres, créé une miniature a partir d'une image du serveur.

    Je ne pourrais pas remplacer le
    Oui tu peux appliquer ce script directement sur le fichier temporaire si tu n'a pas besoin de l'image originale, car souviens-toi elle sera détruite a la fin.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 096
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 096
    Points : 944
    Points
    944
    Par défaut
    Merci pour tes réponses.
    Oui tu peux appliquer ce script directement sur le fichier temporaire si tu n'a pas besoin de l'image originale, car souviens-toi elle sera détruite a la fin.
    je n'aurais donc pas besoin d'utiliser la fonction move_upload()?

    Que veux tu dire par l'image original, cell qui se trouve dans le fichier temporaire?
    Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!

Discussions similaires

  1. Est-il possible d'afficher une image dans Word a partir de XML?
    Par einsteineuzzz dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 31/05/2012, 11h59
  2. est-ce possible de dessiner une image
    Par sebac dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 01/03/2010, 13h58
  3. Réponses: 1
    Dernier message: 17/03/2008, 13h33
  4. Est-il possible de mettre une image sur le bouton d'un formulaire
    Par Yagami_Raito dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 31/05/2007, 13h06
  5. reduire une image avant l'upload
    Par stars333 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 28/04/2007, 08h56

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