Bonjour à tous,

J'essaie de permettre à certains visiteurs de copier des images dans un dossier de mon serveur.

J'ai un formulaire simple :

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
<?php
 
		$max_no_img=10; // Maximum number of images value to be set here
 
		echo "<form method=post action=PHP/reception_photo.php enctype='multipart/form-data'>";
		echo "<table border='0' width='400' cellspacing='0' cellpadding='0' align=center>";
		for($i=1; $i<=$max_no_img; $i++){
		echo "<tr><td>Images $i</td><td>
		<input type=file name='images[]' class='bginput'></td></tr>";
		}
 
		echo "<tr><td colspan=2 align=center><input type=submit value='Add Image'></td></tr>";
		echo "</form> </table>";
 
	?>
L'action du formulaire est ici :

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
 
<?php
while(list($key,$value) = each($_FILES['images']['name']))
	{
		if(!empty($value))
		{   // this will check if any blank field is entered
			$filename = $value;    // filename stores the value
 
			$filename=str_replace(" ","_",$filename);// Add _ inplace of blank space in file name, you can remove this line
 
			$add = "C:\wamp\upload/";   // upload directory path is set
			//echo $_FILES['images']['type'][$key];     // uncomment this line if you want to display the file type
			//echo "<br>";                             // Display a line break
			if(copy($_FILES['images']['tmp_name'][$key], basename($add)))     //  upload the file to the server
			{
				echo "copie ok";
			}
			else
			{
				echo "copie pas ok ." . die();
			}
			//chmod("$add",0777);                 // set permission to the file.
		}
	}
?>
Je n'ai aucune erreur, j'ai copie OK (deux fois pour deux photos), un var_dump($_FILES) m'indique les infos des photos, mais aucune photo n'est copiée sur le serveur.

Le dossier à des permissions de modifications, ce n'est donc pas un problème de droit.

Le problème doit provenir du basename($add) car il ne m'indique pas le nom complet du path.

Si je le retire, j'ai ceci :

Warning: copy() [function.copy]: The second argument to copy() function cannot be a directory in C:\wamp\www\Congres\PHP\reception_photo.php on line 52
ligne 52 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
if(copy($_FILES['images']['tmp_name'][$key], $add)) //  upload the file to the server
Voyez-vous où se trouve le problème ?

Merci d'avance.

beegees