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 :

Php envoi de photos


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2007
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 30
    Par défaut Php envoi de photos
    Bonjour,

    dans ma partie administration, je veux envoyer des photos. Pour cela je voudrais les redimenssionner avant de les uploader. J'arrive à faire d'un coté le redimenssionnement et l'upload de l'autre. Mais je n'arrive pas a combiner les 2. Voici mon code, si quelqu'un pouvait me dire d'ou pourrait venir le problème. Pour moi le problème vient de l'utilisation du imagejpeg($image_redimenssionne, $nom_destination); et du move_uploaded_file($nom_fichier, $nom_destination); je n'arrive peut être pas a bien combiner les 2. Ou alors il faudrait que je puisse me servir seulement du move_upload_file mais pour cela il faudrait que la photo redimenssionnée soit dans le dossier temporaire $_FILES['photo']['name'].
    Merci d'avance^^


    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
    <form action="#" method="POST" enctype="multipart/form-data"> 
    <input type="file" name="photo" size="40"> 
    <input type="submit" value="envoyer"> 
    </form> 
     
    <?php 
    $photo=$_FILES['photo']['name']; //nom de la photo 
    $nom_fichier=$_FILES['photo']['tmp_name']; //nom du fichier dans le répertoire temporaire 
    list($largeur, $hauteur) = getimagesize($nom_fichier); 
    $nouvelle_largeur = 548; 
    $nouvelle_hauteur = 411; 
     
    if($largeur>=548 && $hauteur>=411){ 
    // si c'est le cas on redimenssionne 
    $image_redimenssionne = imagecreatetruecolor($nouvelle_largeur, $nouvelle_hauteur); 
    $ext=substr($photo, strpos($photo,".")+1); 
    switch($ext){ 
    case "JPG"; 
    $image = imagecreatefromjpeg($nom_fichier); 
    break; 
    case "gif"; 
    $image = imagecreatefromgif($nom_fichier); 
    break; 
    case "png"; 
    $image = imagecreatefrompng($nom_fichier); 
    break; 
    default: 
    echo "Type de fichier non supporté, veuillez changer le format en JPG, GIF ou PNG"; 
    } 
     
    imagecopyresampled($image_redimenssionne, $image, 0, 0, 0, 0, $nouvelle_largeur, $nouvelle_hauteur, $largeur, $hauteur); 
     
    //et on enregistre 
    $nom_destination="../Photos/$photo"; //nom et adresse de destination 
    imagejpeg($image_redimenssionne, $nom_destination); 
     
    imagedestroy($image_redimenssionne); 
    imagedestroy($image); 
    }else{ 
    $nom_destination="../Photos/$photo"; //nom et adresse de destination 
    move_uploaded_file($nom_fichier, $nom_destination); //envoie du fichier 
    } 
    ?>

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 9
    Par défaut
    Modifie ton code au tout début : size="40" tu as oublié une guillemet.
    Tu as une accolade } en trop à la fin.

    La structure c'est : if { instruction } else { instruction }

    Et remplace

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $nom_destination="../Photos/$photo"; //nom et adresse de destination
    par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $nom_destination="Photos/".$photo; //nom et adresse de destination
    Normalement ça devrait marcher

  3. #3
    Membre averti
    Inscrit en
    Février 2007
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 30
    Par défaut
    Oups c'est en supprimant des parties inutiles qui m'ont fait commete l'erreur du size="40" et de l'accolade en trop. Ensuite pour $nom_destination les 2 façons se valent.
    En fait j'ai oublié de préciser que mon code marche en local avec EasyPhp mais c'est sur mon serveur free que ça ne marche pas. Normalement ça devrait marcher vu qu'un photo redimensionnée en 548x411 fait une centaine de kO (free limite a 2Mo). Donc je pensais que tout simplement mon
    imagejpeg($image_redimenssionne, $nom_destination); ne marche pas sur le serveur free dans mon cas. Merci pour ton aide ^^ et je rectifie les erreurs que tu m'a dit.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 9
    Par défaut
    De rien

    Ca doit être un probléme dù a Free car de mon coté le code marche parfaitement (sur un serveur OVH).

  5. #5
    Membre averti
    Inscrit en
    Février 2007
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 30
    Par défaut
    ok merci beaucoup j'abandonne alors lol vive free

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

Discussions similaires

  1. [Web Service] PHP - envoi de photo sur Facebook par mail()
    Par lesideesnet dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 04/10/2010, 15h34
  2. [PHP] envoi d'une requete SOAP
    Par orzabal dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 20/03/2006, 14h52
  3. Réponses: 8
    Dernier message: 20/03/2006, 14h01
  4. envoi de photo en attachement
    Par progpolice dans le forum Langage
    Réponses: 2
    Dernier message: 08/03/2006, 15h32
  5. Formulaire PHP+ envoi de fichier joint
    Par GraphicProvider dans le forum Langage
    Réponses: 2
    Dernier message: 29/10/2005, 18h12

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