Page 1 sur 1

formulaire envoi phot

Posté : 22 févr. 2010, 16:34
par lise22
bonjour j essai de mettre un formulaire d envoi de photo avec un move_upload mais les photos n'arrive pas dans le repertoire de destination.
voici ma page de traitement
<?php if(isset($_FILES['photo']))
{
unset($erreur);
$extensions_ok = array('png', 'gif', 'jpg', 'jpeg');
$taille_max = 2000000;
$dest_dossier = "/galleries/scoobi/";
if( !in_array( substr(strrchr($_FILES['photo']['name'], '.'), 1), $extensions_ok ) )
{
$erreur = 'Veuillez sélectionner un fichier de type png, gif ou jpg !';
}
elseif( file_exists($_FILES['photo']['tmp_name'])
and filesize($_FILES['photo']['tmp_name']) > $taille_max)
{
$erreur = 'Votre fichier doit faire moins de 500Ko !';
}
if(!isset($erreur))
{
$dest_fichier = basename($_FILES['photo']['name']);
$dest_fichier = strtr($dest_fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier);
move_uploaded_file($_FILES['photo']['tmp_name'], $dest_dossier . $dest_fichier);
}
}
 
	  ?>
& ma page de formulaire.

<form method="POST" action="envoi_reussi.php" enctype="multipart/form-data">

<input type="hidden" name="MAX_FILE_SIZE" value="500000" />

<fieldset>

<legend>Envoi de fichiers</legend>

<p><label for="photo">Photo :</label><input type="file" name="photo" /></p>

<p><input type="submit" name="envoi" value="Envoyer les fichiers" /></p>

</legend>

</fieldset>

</form>

je voudrais recuper mes photos dans le repertoire scoobi ,& la quand je clic sur le bouton envoyer les fichiers je n ai aucuns messages d erreur mais la phot n arrive pas dans le repertoire.

merci de votre aide je suis une debutante en php & j ai bien suivi l'exemple http://www.phpfrance.com/tutoriaux/inde ... e-fichiers

Re: formulaire envoi phot

Posté : 22 févr. 2010, 23:18
par Ryle
Ton soucis vient du chemin spécifié dans ta variable $dest_dossier :
$dest_dossier = "/galleries/scoobi/";
Le fait de commencer ton chemin par un "/" signifie pour php que tu fais référence à la racine du serveur. Il va donc essayer d'accéder au dossier galleries qui se trouve à la racine de la machine (le c:\ en gros) et comme il ne le trouve pas, il ne peut pas y déplacer le fichier.

Indique un chemin sans commencer par un "/" ou alors en commençant par "./" (avec un point avant) pour indiquer à php qu'il s'agit d'un chemin relatif par rapport à ton script. Voire si nécessaire tu peux utiliser "../" pour remonter au dossier parent. Tu peux ainsi spécifier le chemin du dossier scoobi par rapport au script qui essaye d'écrire dedans :)

Voir la manipulation des fichiers en php pour plus d'infos ;)