Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/06/2011, 20h27   #1
Membre Expert
 
Avatar de beegees
 
Homme David Vincent (l'homme qui a vu les extra-terrestres)
Développeur Web
Inscription : mars 2004
Messages : 3 239
Détails du profil
Informations personnelles :
Nom : Homme David Vincent (l'homme qui a vu les extra-terrestres)
Âge : 37
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web
Secteur : Enseignement

Informations forums :
Inscription : mars 2004
Messages : 3 239
Points : 1 046
Points : 1 046
Par défaut Upload de plusieurs images => rien dans le dossier

Bonjour à tous,

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

J'ai un formulaire simple :

Code :
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 :
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 :

Citation:
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 :
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
__________________
beegees est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2011, 02h09   #2
Membre émérite
 
Avatar de vorace
 
Homme
Développeur
Inscription : août 2010
Messages : 587
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : Développeur

Informations forums :
Inscription : août 2010
Messages : 587
Points : 861
Points : 861
j'ai comme un doute sur ton path :
des back slash et un slash ?!
__________________
Développeur informatique contrarié...
vorace est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 06/06/2011, 08h09   #3
Membre Expert
 
Avatar de beegees
 
Homme David Vincent (l'homme qui a vu les extra-terrestres)
Développeur Web
Inscription : mars 2004
Messages : 3 239
Détails du profil
Informations personnelles :
Nom : Homme David Vincent (l'homme qui a vu les extra-terrestres)
Âge : 37
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web
Secteur : Enseignement

Informations forums :
Inscription : mars 2004
Messages : 3 239
Points : 1 046
Points : 1 046
Citation:
Envoyé par vorace Voir le message
j'ai comme un doute sur ton path :
des back slash et un slash ?!
Salut,

Merci pour ta réponse.

J'ai retiré le /, mais ça ne change rien :

Citation:
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
beegees
__________________
beegees est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2011, 08h33   #4
Membre actif
 
Homme Fabrice Agnello
Développeur informatique
Inscription : octobre 2010
Messages : 76
Détails du profil
Informations personnelles :
Nom : Homme Fabrice Agnello
Âge : 39
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Industrie

Informations forums :
Inscription : octobre 2010
Messages : 76
Points : 161
Points : 161
Bonjour,

le message d'erreur est assez clair pourtant => "The second argument to copy() function cannot be a directory"

Vous devez donc nommer le fichier de destination et pas uniquement indiquer le répertoire dans lequel vous voulez copier votre fichier.

ref : http://php.net/manual/fr/function.copy.php

Cdt.
Agnello Fabrice est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 06/06/2011, 09h37   #5
Membre Expert
 
Avatar de beegees
 
Homme David Vincent (l'homme qui a vu les extra-terrestres)
Développeur Web
Inscription : mars 2004
Messages : 3 239
Détails du profil
Informations personnelles :
Nom : Homme David Vincent (l'homme qui a vu les extra-terrestres)
Âge : 37
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web
Secteur : Enseignement

Informations forums :
Inscription : mars 2004
Messages : 3 239
Points : 1 046
Points : 1 046
Citation:
Envoyé par Agnello Fabrice Voir le message
Bonjour,

le message d'erreur est assez clair pourtant => "The second argument to copy() function cannot be a directory"

Vous devez donc nommer le fichier de destination et pas uniquement indiquer le répertoire dans lequel vous voulez copier votre fichier.

ref : http://php.net/manual/fr/function.copy.php

Cdt.
Bonjour,

Problème résolu

Code :
$add = "C:\wamp\upload\\".$_FILES['images']['name'][$i];
Merci à vous.

beegees
__________________
beegees est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h50.


 
 
 
 
Partenaires

Hébergement Web