J'ai un dossier sur le serveur avec quelques images. Je voudrais que mon code client lise le contenu de ce dossier (images), puis affiche cette image sur un div. Je pensais que ce serait facile avec AJAX, mais il semble que AJAX renvoie des données brutes intégrées dans l'image. J'ai cherché un moyen d'obtenir l'URL de l'image à la place de ces données, mais tout ce que j'ai essayé ne fonctionne tout simplement pas. Je préfère vraiment faire cela du côté client. J'apprécie toutes les suggestions que vous pouvez me donner à ce sujet :).Récupérer des images du serveur via le côté client
Merci,
elshae
//Here is some of my code...
var info = new OpenLayers.Control.WMSGetFeatureInfo({
url: 'http://localhost:8080/geoserver/wms',
title: 'Identify features by clicking',
queryVisible: true,
eventListeners: {
getfeatureinfo: function(event){
map.addPopup(new OpenLayers.Popup.AnchoredBubble(
"chicken",
map.getLonLatFromPixel(event.xy),
null,
event.text + '<div> Hello Tibet :)</div>' + load('./Photos/potalaPalace.jpg'),
null,
true
));
}
}
});
map.addControl(info);
info.activate();
});
function ahah(url) {
//document.getElementById(target).innerHTML = ' Fetching data...';
if (window.XMLHttpRequest) {
req = new XMLHttpRequest();
} else if (window.ActiveXObject) {
req = new ActiveXObject("Microsoft.XMLHTTP");
}
if (req != undefined) {
req.onreadystatechange = function() {ahahDone(url);};
req.open("GET", url, true);
req.send("");
}
}
function ahahDone(url) {
if (req.readyState == 4) { // only if req is "loaded"
if (req.status == 200) { // only if "OK"
//'<div><img src="' + req.response + '"></div>';
var img = new Image();
img.src = req.url;
'<div><img src="' + img + '"/></div>';
} else {
" <div> AHAH Error:\n"+ req.status + "\n" +req.statusText + "</div>";
}
}
}
function load(name) {
ahah(name);
return false;}
Est-ce que vos images existent dans le système de fichiers? Si c'est le cas, vous devriez charger une liste de noms de fichiers, pas de données. vous pouvez générer une liste du contenu du dossier avec la langue du serveur que vous utilisez, ou en créer manuellement un depuis la console avec "dir> images.txt" ou l'équivalent. – lincolnk
pouvez-vous utiliser un script de serveur, comme asp.net ou php? donc vous pouvez créer un webservice qui renvoie les chemins d'image – Mouhannad
Hmm bien tout fonctionne très bien sauf que l'image est affichée en tant que données/caractères bruts. A partir de ces réponses, je suppose qu'il n'y a pas de moyen facile de convertir ces données pour rendre l'image? Pourrais-je juste utiliser Ajax pour chercher dans le dossier et me renvoyer les noms de fichiers? J'ai tout le code prêt à aller :( – elshae