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

jQuery Discussion :

ContentType dans Ajax jQuery pour retourner une image.


Sujet :

jQuery

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2003
    Messages
    178
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2003
    Messages : 178
    Points : 76
    Points
    76
    Par défaut ContentType dans Ajax jQuery pour retourner une image.
    Bonjour a tous

    Le problème : Je voudrais récupérer une image dans la fonction 'success' d'un appel Ajax en jQuery. Bien que largement traité sur le web je n'ai pas trouvé l'erreur qui me bloque.
    Le code jQuery
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
                    $.ajax({
                        type: "POST",
                        datatype: "image/jpeg",
                        url: pathImg,
                        data: { rep: param.imgPath+nomImg,lgMax: 100},
                        cache: false,
                        success: function(img){
                            var imgMini =document.createElement('img');
                            imgMini.src =img;
                            item.appendChild(imgMini);    // item est un div déjà ajouté au DOM
                        }
                    });
    Le code php
    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
     
        public function LireImageAction(){
            $request = $this->container->get('request');
            $u ='PASAJAX';
            if($request->isXmlHttpRequest()){
                $repImg =$request->request->get('rep');
                $lgImg  =$request->request->get('lgMax');
                $imgO   = imagecreatefromjpeg($repImg);
                $lgO    = imagesx($imgO);
                $htO    = imagesy($imgO);
                $htImg = $htO * $lgImg / $lgO;
                $imgF  = imagecreate($lgImg, $htImg);
                imagecopyresized($imgF, $imgO, 0, 0, 0, 0, $lgImg, $htImg, $lgO, $htO);
                return new response($imgF);
            }
            return new response($u);
        }
    Pour lever toute ambiguïté sur l'accès au php et le retour dans Ajax, j'ai fait un test en mettant "return new response("TOTO");" dans mon script PHP et je reçois bien "TOTO" dans la fonction success de mon appel Ajax.
    C'est pour ça que je pense qu'il y a un problème de format de la réponse, soit au niveau de l'émission (PHP) soit au niveau de la reception (jQuery).
    Quelqu’un a-t-il une idée ?

    Merci de vos réponses.
    YC

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 644
    Points : 66 671
    Points
    66 671
    Billets dans le blog
    1
    Par défaut
    Ajax ne peut retourner que du string...
    Dans certains cas Jquery permet de parser directement la réponse dasn un format spécifique au moyen de DataType.

    Tu ne récupères donc pas une image mais le flux du fichier image sous forme de string.
    Qui est d'ailleurs peut être exploitable dans le date d'un canvas ... (pas testé)

    Sinon tu peux récupérer un base64 de ton image comme expliqué dans ce lien:
    http://www.developpez.net/forums/d15...ant-constante/

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2003
    Messages
    178
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2003
    Messages : 178
    Points : 76
    Points
    76
    Par défaut
    Oui, je connais bien cette discussion
    http://www.developpez.net/forums/d15...ant-constante/

    Je ne savais pas que l'Ajax ne pouvait retourner que du string.
    Je vais donc stocker l'image sur le serveur, retourner le chemin et le mettre directement dans src.

    Merci de ta réponse
    YC

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 17/09/2014, 11h11
  2. [ImageMagick] Problème dans le code pour redimensionner une image
    Par pierrot10 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 08/06/2007, 15h06
  3. Besoin d'aide pour afficher une image dans un applet
    Par argon dans le forum AWT/Swing
    Réponses: 16
    Dernier message: 19/01/2006, 20h45
  4. code HTML pour mettre une image en background dans un menu
    Par Link14 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 16/10/2005, 13h11

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