Bonjour à toutes et à tous,
Objectif : Récupérer en tant que variable de session une imageprésente sur mon serveur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part <img src="..." />
Je souhaite afficher l'image récupérée sur le serveur suite à un upload que j'ai effectué.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <?php //session_start(); /** script traitant la récupération et l'affichage de la vignette. Nous affichons les vignettes dans la div ayant l'id ajoutPhotos Rappel : Nous sommes dans la zone du producteur ayant uploadé la vignette. */ //print_r($_SESSION['picture'][$_SESSION['id']]); $dossier='vignettes/'; print '<img src="'.$dossier.$_SESSION['picture'][$_SESSION['id']].'">'; ?>Merci d'avance,
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69 <?php //session_start(); //A session had already been started - ignoring session_start() in ..../zone_producteur.php /** script permettant l'insertion dans la zone producteur des vignettes uploadées sur le serveur de base de données. Objectif : Suite à l'insertion en base des vignettes uploadées, le producteur doit voir s'afficher la vignette dans son espace. Les vignettes sont présentes physiquement dans un répertoire vignettes sur le serveur. Il faut donc parcourir ce répertoire pour afficher la vignette en fonction du producteur, en effet chaque nom de vignette est précédé d'un entier représentant l'id du producteur (e.g : 1_img5.jpg qui représente une vignette uploadée par le producteur ayant l'id 1 dans la table des producteurs.) */ // création d'une structure de données vide pour stocker les vignettes $container = array(); $dossier = "vignettes/"; // le répertoire contenant les vignettes uploadées $dir = opendir($dossier); // on ouvre le répertoire contenant les vignettes // TRAVERSER le répertoire en lecture /* Explication du test conditionnel de la boucle while() 1 - Chaque vignette lue est placée dans une variable $vignettes afin qu'elle ne soit pas perdue Rappel : un résultat qui n'est pas mis dans une variable est perdue ! 2 - On compare ce qui est extrait de la lecture avec la valeur false (ce qui est pertinent !) 3 - On utilise l'opérateur de comparaison !== (différent) On test que le contenu extrait est différent de false donc vaut true ! */ while(false !== ($vignettes = readdir($dir))) { // si le fichier n'est pas le répertoire courant et le répertoire parent if($vignettes != '.' && $vignettes != '..') { // alors je remplis le tableau avec les vignettes présentes dans le répertoire $container[] = $vignettes; } } // fin while() closedir($dir); // on ferme le répertoire sort($container); // on trie le tableau ... mais ce n'est peut-être pas utile ! // on crée une variable de session pour pouvoir récupérer toutes les vignettes sans distinction $_SESSION['picture'] = $container; /* Explication du principe de récupération des vignettes Si nous avons récupéré la variable de session $_SESSION['id'] (e.g ?id=2) nous parcourons le tableau pour trouver toutes les vignettes ayant un nom préfixé par l'entier représentant l'id du producteur. */ // si la variable $_SESSION est récupérée if(isset($_SESSION['id'])) { //$count = sizeof($container); // récupérer le nombre d'élément du tableau $id = intval($_SESSION['id']); // on veut la valeur numérique entière // PARCOURIR LE TABLEAU // Astuce : La boucle foreach est recommandée pour parcourir un tableau en assignant chaque paire clé:valeur // La clé correspond à l'identifiant de la vignette dans le tableau et la valeur au nom de la vignette foreach($container as $cle=>$valeur) { // on récupère le 1er caractère du nom de la vignette et on le compare à l'identifiant de session $prCarVignette = substr($container[$cle],0,1); if($prCarVignette == $id) { // on crée une variable de session pour pouvoir récupérer les vignettes correspondant aux vignettes du producteur // on se base sur l'identifiant de session qui correspond au premier caractère du nom du fichier $_SESSION['picture'][$_SESSION['id']] = $prCarVignette; //echo "<a href=\"gallery-image.php?img=$cle\">$valeur</a></br>"; include 'ajout_publierPhotos.php'; } } // fin foreach() } // fin if() /* // pour le debogage echo '<pre>'; print_r($_SESSION['picture'][$_SESSION['id']]); echo '</pre>'; */ ?>
Transact.
Partager