[RESOLU] Afficher images sur serveur par date

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Afficher images sur serveur par date

Re: [RESOLU] Afficher images sur serveur par date

par moogli » 11 juil. 2013, 07:33

Salut,

Il faut boucler sur le tableau (foreach) et ensuite afficher l'info qui t'intéresse


@+

Re: Afficher images sur serveur par date

par flo1990m » 10 juil. 2013, 21:01

Bonsoir, voilà je continue péniblement mon chemin vers la réalisation du script, et je suis face à un soucis. Comment fait-on pour afficher toutes valeurs de 'file' contenue dans la variable Images[] ?
$images[] = array('file' => $file,
                      'day' => $day,
                      'month' => $month,
                      'year' => $year,
                      'hour' => $hour,
                      'minute' => $minute,
                      'seconde' => $seconde);
echo $images['file'] ne fonctionne pas car il ne vas pas chercher dans le array.

Re: Afficher images sur serveur par date

par flo1990m » 10 juil. 2013, 08:53

Travailler ne me dérange pas du tout au contraire j'aimerais le réaliser moi-même, mais quand j'essaie de faire cela ne fonctionne pas. Pourtant je cherches les syntaxes des fonctions php et tout, mais il en existe tellement que j'en suis perdu

Re: Afficher images sur serveur par date

par Spols » 10 juil. 2013, 08:50

tourne toi vers un prestataire externe, si tu veux un code tout fait sans travailler

Re: Afficher images sur serveur par date

par flo1990m » 09 juil. 2013, 18:59

Re bonsoir, je sais que c'est peut-être trop demandé, mais es qu’il serais possible que tu me donne le code entier ? Je suis sincèrement largué :S

Re: Afficher images sur serveur par date

par flo1990m » 09 juil. 2013, 12:07

Oui c'est ce que je suis en train de faire, mais à vrai dire je suis pris par le temps car il faudrait que cela fonctionne rapidement (avant la fin d'après-midi) car je dois présenter la fonction à une personne, et j'aimerais bien être dans les temps, quitte à relire le script en détails et à faire les recherches pour comprendre étapes par étapes par la suite.

Re: Afficher images sur serveur par date

par Spols » 09 juil. 2013, 12:03

trouve toi un cours en ligne sur php, et suis le en cherchant ce qui t'interesse, c'est le meilleur moyen pour apprendre

Re: Afficher images sur serveur par date

par flo1990m » 09 juil. 2013, 11:46

En théorie oui je comprends bien, mais là ou j'ai les lacune c'est sur la programmation du code en lui-même, je parcours http://www.php.net à la recherche de comment je pourrais bien faire cela, mais c'est un peut du chinois pour moi. Je serais plus fort si tu me posais des questions sur le multimédia ^^

Re: Afficher images sur serveur par date

par Spols » 09 juil. 2013, 11:36

C'est un bon début,

Pour classer tes fichiers, tu peux utiliser un index spécifique dans ton tableau, le plus simple est d'utiliser un temps unix
Tu peux alors aisément classer ton tableau avec ksort();

Commence par faire une boucle d'affichage, dans un premier temps utilise les attributs width height de <img> pour tes miniatures, tu t'occuperas des les faire réellement plus tard.
Ajoute ensuite des conditions pour avoir un titre par jour par exemple avec un modulo 86400 (24 * 60 * 60)
<?php

$dossier = '1';
 
$files = scandir($dossier);
 
$images = array();
 
foreach($files as $file){ //On parcoure nos fichiers
    if(!is_dir($dossier . '/' . $file)){ 
    $explode = explode('_', $file);
    $datetime = $explode[2];
 
    $year = substr($datetime, 0, 4);
    $month = substr($datetime, 4, 2);
    $day = substr($datetime, 6, 2);
    $hour = substr($datetime, 8, 2);
    $minute = substr($datetime, 10, 2);
    $seconde = substr($datetime, 12, 2);
 
$index = mktime($hour,$minute,$second,$month,$day,$year);
    $images[$index] = array('file' => $file,
	                  'day' => $day,
                      'month' => $month,
					  'year' => $year,
					  'hour' => $hour,
					  'minute' => $minute,
					  'seconde' => $seconde);
    }
}
ksort($images); 
print_r($images);

?>

Re: Afficher images sur serveur par date

par flo1990m » 09 juil. 2013, 11:16

<?php

$dossier = dirname(Camera);
 
$files = scandir($dossier);
 
$images = array();
 
foreach($files as $file){
    if(!is_dir($dossier . '/' . $file)){ 
    $explode = explode('_', $file);
    $datetime = $explode[2];
 
    $year = substr($datetime, 0, 4);
    $month = substr($datetime, 4, 2);
    $day = substr($datetime, 6, 2);
    $hour = substr($datetime, 8, 2);
    $minute = substr($datetime, 10, 2);
    $seconde = substr($datetime, 12, 2);
 

    $images[] = array('file' => $file,
                      'day' => $day,
                      'month' => $month,
                      'year' => $year,
                      'hour' => $hour,
                      'minute' => $minute,
                      'seconde' => $seconde);
    }
}
 
print_r($images);

?>
Désolé ^^. Voila le premier bout de code qui permet de faire un tableau avec les valeurs "jour mois année heure minute seconde" récupérés dans les noms des images, Maintenant il vas falloir regrouper tous les fichiers par dates pour ensuite appeler la fonction qui affiche les miniatures du jour en question... et là blocage...

Re: Afficher images sur serveur par date

par Spols » 09 juil. 2013, 11:07

recup des fichiers =>scandir()

parcours du tableau et récupération des dates
foreach()
preg_match()
mktime()
Et google ou php.net pour le fonctionnement des fonctions.

Revient avec un début de code pour qu'on t'aide, mais écrire le premier jet n'est pas dans nos habitude

Re: Afficher images sur serveur par date

par flo1990m » 09 juil. 2013, 09:46

Merci pour ta réponse, mais à vrai dire je suis sincèrement un tout petit novice en php. Comme tu dis ça à l'air simple, mais je ne sais même pas par ou commencer :S

Si j'ai bien compris, les étapes à faire sont:

- On explore le dossier contenant les photos

- On récupère tout les noms de fichiers en mettant une règle qui récupère heure minute seconde jour mois année des photos

- On crée un petit calendrier dynamique pour gérer toutes les photos qui auront étaient regroupées par même date de prise de vue

- Puis une fois une date sélectionnée on affiche toutes les photos du jour en miniature par ordre chronologique (du style miniature de x pixel)

- Et pour finir on rend chaque miniatures cliquable pour ouvrir la photo en taille réel

Ayé je suis perdu Le code ressemblerai à quoi à ton avis ? Encore un grand merci

Re: Afficher images sur serveur par date

par Spols » 09 juil. 2013, 09:42

Tu peux lister les fichiers d'un dossier et en extraire le bout de chaine correspondant à la date pour une regex. ensuite tu stocke cela en base pour limiter la charge (éventuellement reclasser les images par dossier pour éviter les dossier trop rempli, créer tes miniatures, ne pas retraiter les images dèjà traitées, ...)

commence juste par lire les fichiers du dossier et les classer par date, ensuite ajoute tes fonctionnalité une par une

Afficher images sur serveur par date

par flo1990m » 08 juil. 2013, 22:17

Bonjour,

voila je me permets de faire appel à vos connaissances car je sèche complètement sur la réalisation d'un script.

J'ai une caméra IP qui envoie des photos sur mon serveur en cas de détection de mouvements. Les noms des prises de vues sont sous ce format :

78A5DD08CA31(Camera)_1_20130708160748_0

soit : referencecamera(nom camera)_numerocamera_année mois jour heure minute secondes_compteur

Imaginons-nous maintenant un mois plus tard, et toutes les photos envoyées sur le serveur, cela peut faire beaucoup et dur de s'y retrouver si on dois chercher à une date précise les photos prisent.

C'est pour cela que j'aimerais avoir une page avec une liste déroulante (au mieux pourquoi pas un petit calendrier mais il ne faut pas trop pousser non plus ^^) proposant toutes les dates qui contiennent des prises de vues. Une fois la date sélectionnée, que cela affiche toutes les photos prises ce jour-là en miniatures et par heures croissante. Pourquoi pas pousser la chose, et avoir la possibilité de cliquer sur les miniatures pour pouvoir ouvrir la photo dans sa taille normal dans une nouvelle page.

Donc voilà je sèche complètement, et c'est pour cela que je demande votre aide. Une idée ? Merci beaucoup par avance