galerie photos => erreur "warning function.copy"

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 : galerie photos => erreur "warning function.copy"

function copy

par san1981 » 30 juil. 2008, 21:08

merci chrislabricole pour ton aide,

mais je ne comprends pas bien, j'ai bien défini 2 arguments à copy() non?
if (!copy($FilesFolder.$fichier, "../photos/".$RubriqueName."/".$fichier))

premier argument en spécifiant le fichier où je suis actuellement, la source, puis le 2e argument en spécifiant que je veux mettre les photos dans le dossier photos/marubriquechoisie. Où ça cloche?

par chrislabricole » 29 juil. 2008, 22:36

C'est parce-que tu à mis un seul argument à copy()

Regarde ici

galerie photos => erreur "warning function.copy"

par san1981 » 29 juil. 2008, 21:48

Bonjour,

Je suis débutant 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:
<?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