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:
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:
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