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 :

[Librairie] Envoi d'image avec resize et déplacement [Fait]


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 104
    Points : 100
    Points
    100
    Par défaut [Librairie] Envoi d'image avec resize et déplacement
    Voila je cherche à faire un formulaire qui permettrait de créer une fiche produit c'est à dire :

    Des champs textes stockés dans une bdd et liés à un code produit déja existant.
    En plus de ces textes, il faut stocker l'image avec un certain nom (id produit) ainsi que le mettre à une taille à définir. J'ai déja pu trouver des méthodes pas mal mais il fallait installer des librairies et comme le serveur est chez un provider c'est un peu compliqué pour les installers (surtout que c'était du mdk et le serveur est un serveur win2K3 ).

    Existe-t-il une libraire dans php où une méthode qui ne demande pas trop de modifications du serveur à l'hébergeur pour effectuer ce type d'opération ?

    Ps : l'image doit être envoyée, redimensionnée ainsi que mise dans un certain répertoire avec un certain nom.
    Ps2 : je ne compte pas stocker les images dans la base sql en binaire

    Merci

  2. #2
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut
    La librairie GS te permet de manipuler les images en PHP.

    Il u a un très bon tuto sur dvp : http://mtodorovic.developpez.com/php/gd/

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 104
    Points : 100
    Points
    100
    Par défaut
    Après avoir lu le tuto, cette librairie semble pouvoir modifier l'affichage mais pas le fichier.

    Je m'explique, je souhaite avoir un formulaire avec un champ pour envoyer une photo standard, peut importe la taille de cette photo je souhaite qu'elle soit en 500*500 par exemple. Hors la librairie peut appliquer ça à l'affichage mais pas lors de l'écriture du fichier. Voici le code simplifié de ce que j'essaye de 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
     
    <?php
    header('Content-type: image/jpeg');
    header('Content-type : text/html');
     
    echo ("<form id=form1 enctype=multipart/form-data action=uploadimg.php method=post>
        Envoyer ce fichier : <input name=fichier type=file>
        <input type=submit name=submitimg value='Envoyer le fichier'>
        </form>");
    		if (isset($_POST['submitimg']))
    			{		
    			$tmp_name=$_FILES['fichier']['tmp_name'];
    			$name=$_FILES['fichier']['name'];
    			$size=$_FILES['fichier']['size'];
    			$type=$_FILES['fichier']['type'];
    			$erreur=$_FILES['fichier']['error'];
     
    			//On affiche les différentes variables
     
    			echo "Nom du fichier :".$name;
    			echo "<br>Taille du fichier :".$size;
    			echo "<br>Type de fichier :".$type;
    			echo "<br>Nom temporaire :".$tmp_name;
    			echo "<br>Erreur :".$erreur;
     
    			//On crée une variable contenant le répertoire de destination
    			$uploadpath="/le dossier de destination/";
     
    			$dim = getimagesize($tmp_name);
    			$n_largeur= 500;
    			$n_hauteur = 500;
    			$destination = imagecreatetruecolor(500,500) or die("cannot");
    			$source=imagecreatefromjpeg($tmp_name);
    			imagecopyresized($destination,$source,0,0,0,0,$n_largeur,$n_hauteur,$dim[0],$dim[1]);	 
    			move_uploaded_file($destination,$uploadpath.$name);
    			}
    ?>

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 104
    Points : 100
    Points
    100
    Par défaut
    Solution trouvée, voici le code très simplifiée mais les idées sont là

    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
    <?php
    echo ("<form id=form1 enctype=multipart/form-data action=uploadimg.php method=post>
        Envoyer ce fichier : <input name=fichier type=file>
        <input type=submit name=submitimg value='Envoyer le fichier'>
        </form>");
    		if (isset($_POST['submitimg']))
    			{
     
    			//On simplifie le nom des variables $_FILES
    			$tmp_name=$_FILES['fichier']['tmp_name'];
    			$name=$_FILES['fichier']['name'];
    			$size=$_FILES['fichier']['size'];
    			$type=$_FILES['fichier']['type'];
    			$erreur=$_FILES['fichier']['error'];
     
    			//On affiche les différentes variables
     
    			echo "Nom du fichier :".$name;
    			echo "<br>Taille du fichier :".$size;
    			echo "<br>Type de fichier :".$type;
    			echo "<br>Nom temporaire :".$tmp_name;
    			echo "<br>Erreur :".$erreur;
     
    			//On crée une variable contenant le répertoire de destination
    			$uploadpath="chemin de destination";
    			$dim = getimagesize($tmp_name);
    			$n_largeur= 500;
    			$n_hauteur = 500;
    			$destination = imagecreatetruecolor(500,500) or die("cannot");
    			$source=imagecreatefromjpeg($tmp_name);
    			imagecopyresized($destination,$source,0,0,0,0,$n_largeur,$n_hauteur,$dim[0],$dim[1]);
    			imagejpeg($destination,$uploadpath.$name,100); 
    			}
    ?>

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

Discussions similaires

  1. [PIL] redimensionner une image avec resize
    Par nicolivier dans le forum Général Python
    Réponses: 12
    Dernier message: 06/04/2013, 17h20
  2. envoi d'images avec javamail
    Par hypothese dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 04/08/2009, 12h09
  3. Réponses: 3
    Dernier message: 29/01/2009, 16h11
  4. [Mail] Envoie news HTML avec images
    Par matt44 dans le forum Langage
    Réponses: 3
    Dernier message: 15/03/2007, 15h23
  5. [GD] La moitié d'une image avec la librairie GD?
    Par isa150183 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 30/10/2006, 16h08

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