Page 1 sur 1

upload de fichier en php : problème

Posté : 14 août 2007, 11:13
par _damien_
Bonjour,

Sur mon site, j'ai un formulaire qui permet d'uploader des fichiers sur le serveur (j'ai pris un domaine sur www.one.com)

Mais une fois le fichier envoyé, il me dit:
l'upload a échoué
Par contre quand je teste en local (via wamp serveur), il n'y a aucun problème, ça fonctionne.

j'ai affiché les variables renvoyées:
Array
(
[fichier] => Array
(
[name] => arbre.JPG
[type] => image/jpeg
[tmp_name] => /tmp/phpcfR0Mu
[error] => 0
[size] => 11680
)

)

voici le code que j'utilise:

if( isset($_POST['upload']) ) // si formulaire soumis
	{
		if($section==1)
		{
			$content_dir='/Sauvetage/Resultats/';
		}
		else
		{
			$content_dir='/Natation/';
		}     	
		$tmp_file = $_FILES['fichier']['tmp_name'];
	
		if( !is_uploaded_file($tmp_file) )
		{
			exit("Le fichier est introuvable");
		}	
		// on vérifie maintenant l'extension
		$type_file = $_FILES['fichier']['type'];
	
		if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'bmp') && !strstr($type_file, 'gif') )
		{
			exit("Le fichier n'est pas une image");
		}	
		// on copie le fichier dans le dossier de destination
		$name_file = $_FILES['fichier']['name'];	

		if(move_uploaded_file ($tmp_file, $content_dir.$name_file))
			echo("<br>l'upload a réussi") ;
		else
			echo("<br>l'upload a échoué") ;
	
		echo "Le fichier a bien été uploadé";
	}
	

	$query=mysql_query("insert into resultat (id, date, lieu_compet, resultat, etat) values (' ', '$date', '$lieu', '$tmp_file', '$section');") or die (mysql_error());
	if($query)
	{
		echo 'ok insertion réussie';
	}
Quelqu'un aurait-il une solution??

Merci d'avance.

Posté : 14 août 2007, 11:19
par Ryle
Et pas de message d'erreur sur le move_uploaded_file() ?

même avec un error_reporting(E_ALL) ?

Vérifies que le dossier de destination existe et que php a bien les droits en écriture pour y coller un fichier...
Rappel : si tu commences l'arborescence par un "/" pour un fichier, il va partir de la racine du systeme de fichier, pas de la racine du site. Je doute que ton serveur dispose des dossier "Sauvetage" ou "Natation" à sa racine (son '/' ou son 'C:\'). Utilise plutôt un chemin relatif :)

Posté : 14 août 2007, 11:19
par @rthur
Bonjour,

Essaye de mettre un chmod 777 sur ton répertoire $content_dir
Par ailleurs, je te conseille d'éviter les majuscules dans tes noms de fichiers et de répertoires, utilises t le temps des minuscules, ça évite souvent bien des problèmes ;)