OVH Community, votre nouvel espace communautaire.

[demande] creation repertoire automatique et deplacer


Gaston_Phone
28/11/2012, 07h10
Citation Envoyé par bryce451
Hmm, je vais essayer de bien lire le code car il y a deux trois trucs que je ne comprends pas et je vais essayer ça.

Un GRAND merci !

Mes doutes en compréhension php :
.File_from_Camera
$Fichier_from_Camera
En effet, j'avais oublié le $

J'avais pensé aussi au rename, mais cela ne fonctionne pas à tous les coups.

bryce451
28/11/2012, 04h29
Bon, ça "marche" !
Code PHP:
$dossier '/homez.xxx/yyy/www/camsecu/';
$dossier1 $dossier.'maintenant/';
$dossier2 $dossier.date('Y_m_d_H-i-s/');
chdir($dossier);
mkdir($dossier2);
$fichiers glob($dossier1.'*.jpg');
foreach(
$fichiers as $fichier){
$fichiernom str_replace($dossier1,'',$fichier);
rename('/'.$dossier1.$fichiernom $dossier2.$fichiernom);

Je suis sûr que plus d'un vont bondir en voyant mon code, surtout les 4 ou 2 dernières lignes ... merci de m'éclairer pour un truc propre, que je puisse apprendre de cette expérience !

bryce451
28/11/2012, 02h20
Oui, ils ne sont pas définis, c'est bien ce que je pensais

J'ai ajouté un truc du genre

$files = glob('/chemin/'.'*.jpg); (car comme la cam écrit en permanence, il y a un fichier .TMP de temps en tps)

Mon problème maintenant c'est avec rename :
Rien ne semble marcher avec mon $files
rename($files , '/chemin2/'); NON PLUS rename('/chemin1/'.$files , '/chemin2/');


/www/camsecu/ (mkdir doit créer les $dossier ici)
/www/camsecu/trier.php
/www/camsecu/maintenant/ (upload des images)
Code PHP:
$dossier '/homez.xxx/yyy/www/camsecu/';
$dossier1 $dossier.'maintenant/';
$dossier2 $dossier.date('Y_m_d_H-i-s');
chdir($dossier);
mkdir($dossier2);
$fichiers glob($dossier1.'*.jpg');
rename($fichiers $dossier2.'/'); 
Mon retour en ssh :


Warning: rename(Array,/chemin/2012_11_28_03-22-47/) [function.rename]: No such file or directory in /chemin/trier.php on line 8


note : mkdir a bien créé $dossier et bien où il faut.

note2 : ça non plus ça ne marche pas :
Code PHP:
$dossier '/homez.xxx/yyy/www/camsecu/';
$dossier1 $dossier.'maintenant/';
$dossier2 $dossier.date('Y_m_d_H-i-s/');
chdir($dossier);
mkdir($dossier2);
$fichiers glob('*.jpg');
rename($dossier1.$fichiers $dossier2.$fichiers); 

bryce451
27/11/2012, 23h06
Hmm, je vais essayer de bien lire le code car il y a deux trois trucs que je ne comprends pas et je vais essayer ça.

Un GRAND merci !

Mes doutes en compréhension php :
.File_from_Camera
$Fichier_from_Camera

Gaston_Phone
27/11/2012, 22h47
A tout hasard :
Code PHP:
   $DOSSIER date ("Y_m_d_H_i_s");        // Nom du dossier
   
if (!is_dir($DOSSIER))   mkdir($DOSSIER);   // Création du dossier s'il n'existe pas
   
$Path_File_from_Camera "Chemin/".$File_from_Camera;  // Chemin + fichier  initial
   
$Path_File_final $DOSSIER."/".$File_from_Camera;         // Chemin + fichier  final
   
copy($Fichier_from_Camera$Path_File_final)   // Copie du fichier
   
unlink($Path_File_from_Camera)  // Suppression du fichier initial 

bryce451
27/11/2012, 22h20
Je tourne avec une offre Pro (possibilité d'avoir des scripts planifiés).
Je dispose d'une cam de sécurité qui upload des images, mais dans un seul et unique dossier de mon choix (impossible de régler ça dans la cam...)
Je me retrouve donc très vite avec plus de 5000 fichiers dans le même dossier et mes scripts en batch sous windows ne servent plus à rien si je veux être sûr de pas perdre d'images importantes.

Je demande donc de l'aide ici. Je ne connais rien ou presque rien en php.


Je voudrais que lorsque le serveur mutualisé lance le script toutes les 4 heures il fasse (le plus simple il me semble):
  • création répertoire ayant comme nom année_mois_jour_heure-minutes-secondes
  • Qu'il cherche les images de /www/cam_imgs/ et les déplacent dans le dossier qui vient d'être crée.


Merci pour toute aide pouvant m'être apporté !