Bonjour,

Je suis newbie en php et je souhaite créer une galerie photos avec des rubriques pour que les internautes puissent choisir une rubrique et afficher les photos correspondantes. Pour ça, j'ai créé 2 tables, une "rubrique" et une "image" avec une relation et un formulaire accessible par l'administrateur pour pouvoir ajouter dans un dossier relatif à la rubrique concernée les bonnes photos automatiquement.

Le formulaire s'affiche correctement avec une liste déroulante des rubriques disponibles mais j'ai un message d'erreur:
Warning: copy() [function.copy]: The first argument to copy() function cannot be a directory in C:\wamp\www\monsite\BDDphotos_admin_add_img.php on line 63
ERROR
Des fichiers qui se trouvent sur mon C:/ sont copiés dans mon dossier "photos" . Je suppose que mon lien vers mon fichier "photos" n'est pas correct mais il me semble que oui?

Et les fichiers qui ont été copiés n'ont pas été placés dans le dossier lié à la rubrique mais dans le fichier général "photos"...

J'ai le répertoire de mon site avec un dossier "photos" et des dossiers avec mes rubriques.

Voici le code pour créer le formulaire en question:
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
<?php
mysql_connect("localhost", "root", "");
mysql_select_db("monsite");
echo "<form action='BDDPhotos_admin_add_img.php' 
enctype='multipart/form-data'
	    method='post'>
	Répertoire des images:<br/>
	  <input type='text' name='frm_files_folder' size='40' 
value='../photos/temp'/>
	  <br/><br/> 
	Rubrique: ";
 
$result = mysql_query("SELECT RubriqueID, RubriqueName FROM Rubrique 
	  ORDER BY RubriqueName DESC") or die("requête non exécutée");
 
echo "<select name='frm_select_rubrique'>";
$Selected = 0;
while ($row = mysql_fetch_array($result))
{
  if($Selected == 0)
  {
    echo '<option value="', $row[0], '" selected="selected">', $row[1], 
'</option>';
    $Selected = 1;
  }
  else
  {
    echo '<option value="', $row[0], '">', $row[1], '</option>';
  }
}
echo "</select>
	<br/><br/>
	<input type='submit' value='Ajouter images' id='submit'/> 
	</form>";
 
$FilesFolder = $_POST['frm_files_folder'];
// Ajoute / à la fin du chemin du répertoire si manquant
if (substr($FilesFolder, -1) != "/") 
  $FilesFolder = $FilesFolder."/";
// Vérifie que le chemin correspond bien à un répertoire
if (!is_dir($FilesFolder)) 
{
  echo "ERROR";
  return;
}
 
$handle = opendir($FilesFolder);
if ($handle == 0)
{
  echo "ERROR";
  return;
}
// Saute le . et le ..
readdir($handle);
readdir($handle);
// Parcours les images
while (($fichier = readdir($handle)) !== false)
{	    
  // TODO: Vérifier ici que l'extension du fichier correspond à une image
 
  // Copie les images du repertoire temporaire vers le répertoire images 
  if (!copy($FilesFolder.$fichier, "../photos/".$RubriqueName."/".$fichier))
  {
    echo "ERROR";
  }
 
  // TODO: Récupérer les informations sur l'image (taille, dimensions, ...)
 
  // Ajoute l'image à la base de données
  $Date = date("Y-m-d");
  $Time = date("H:i:s");
  $query = "INSERT INTO Image SET 
		ImageID='NULL', 
		RubriqueID='$RubriqueID',
		ImageName='$fichier',
		ImageDesc='', 
               	ImageRes='', 
               	ImageSize='',
		Date='$Date',
		Time='$Time'"; 
  $result = mysql_query($query); 
}
closedir($handle);
 
?>
Merci à tous pour l'aide