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

Symfony PHP Discussion :

création de vignettes [1.x]


Sujet :

Symfony PHP

  1. #1
    Invité
    Invité(e)
    Par défaut création de vignettes
    Hello.

    Je souhaite créer des vignettes à partir d'images uploadées via un formulaire.

    J'utilise une fonction de redimensionnement en PHP, et j'insère la vignette dans ma page :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?php 
    $img_src = "/uploads/trucs/".$truc->getAdvertisementImage();
    insertAndResizeImage($img_src, $max_width, $max_height)
    ?>
    Et dans ma fonction insertAndResizeImage, je calcule les dimensions optimales, puis j'insère mon image :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <?php 
    echo "<a href='".$img_src."'><img src='".$img_src."' height='".$new_size['height']."px' width ='".$new_size['width']."px'></img></a>"; 
    ?>
    Tout fonctionne. Oui mais j'ai triché en fixant la taille de mon image pour tester ma fonction.

    Je pensais que le code suivant me permettrait d'obtenir la taille de mon image :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $size = getimagesize($img_src);
     
    $image_width  = $size[0];
    $image_height = $size[1];
    Mais non
    J'obtiens le message d'erreur suivant :
    Warning: getimagesize(/uploads/trucs/193123ce1ac86ede842f5e5e92ea7de86b78fb48.png)
    [function.getimagesize]: failed to open stream: No such file or directory in C:\dev\sfproject\project\apps\frontend\modules\truc\templates\_resizeImage.php on line 4
    J'en viens donc à ma question :
    Existe-t-il une manière propre d'indiquer à ma fonction getimagesize() l'emplacement du répertoire uploads autre que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $size = getimagesize('http://localhost:8080/'.$img_src);
     
    $image_width  = $size[0];
    $image_height = $size[1];

    Merci d'avance !

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 55
    Par défaut sfConfig::get('sf_upload_dir')
    Quelque chose comme ça ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    protected  function resize ( $folder , $filename  ) 	 {
      		$file =	sfConfig::get('sf_upload_dir')."/medias/$folder/".$filename ;

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bah... en fait j'avais essayé, mais y'a comme un problème :
    Quand j'utilise sfConfig::get('sf_upload_dir'), j'obtiens le chemin vers mon image :
    c:/dev/../uploads/mon_image.png

    Et mon image ne s'affiche pas.
    Par contre, si je remplace le chemin par une url :
    http://localhost:8080/uploads/mon_image.png

    Ca marche !

    Comment obtenir une url à la place du chemin ?
    Dernière modification par Invité ; 14/04/2011 à 17h31.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 55
    Par défaut en PHP ?
    $_SERVER['SERVER_NAME'];

  5. #5
    Invité
    Invité(e)
    Par défaut
    Salut PierreHaut.

    Merci pour ton aide.
    J'ai essayé $_SERVER['SERVER_NAME'], mais ça ne marche pas (parce que $_SERVER['SERVER_NAME'] contient "localhost:8080", et non "http://localhost:8080").

    Comme ça commençait à me saouler, j'ai opté pour un truc pas joli mais qui fonctionne :
    $upload_directory = $_SERVER['HTTP_REFERER']."../uploads/";

    ($_SERVER['HTTP_REFERER'] contenant "http://localhost:8080/frontend_dev.php/", je remonte d'un niveau et le tour est joué)

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 55
    Par défaut
    'http;//' . $_SERVER['SERVER_NAME'] me semble plus sûr

    $_SERVER['HTTP_REFERER']. c'est d'où tu viens
    donc aucune garantie que ça marche

  7. #7
    Invité
    Invité(e)
    Par défaut
    Ok.
    Merci pour l'info.

    Je corrige de suite.

  8. #8
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Le mieux est de ne pas mettre le nom du serveur, mais juste le chemin d'accès à partir de la racine du serveur.

    Il ne faut jamais utiliser de variable $_SERVER ou autres $_GET dans symfony.

    Tu trouves ce qui t'es nécessaire dans l'objet sfRequest qui est passé en paramètre lors de l'activation de l'action.

    Dans le tutoriel jobeet il y a ce qu'il faut pour comprendre ce qui est récupération et stockage et affichage d'une image.

    Tu as un plugin qui permet de gérer le redimensionnement de tes images.

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

Discussions similaires

  1. [MySQL] Création de vignette avec incrémentation
    Par allellla dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 05/03/2009, 22h13
  2. Réponses: 6
    Dernier message: 17/06/2007, 07h26
  3. [WD10]Création de vignettes ?
    Par Louis Griffont dans le forum WinDev
    Réponses: 6
    Dernier message: 15/02/2007, 10h29
  4. [ImageMagick] Création de vignette d'image à la volée
    Par falatop dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 31/10/2006, 15h13
  5. [ImageMagick] Création de vignettes (images réduites)
    Par tom06440 dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 22/10/2005, 15h00

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