PHP | Interaction avec le système de fichier

anatolekadel Messages postés 102 Date d'inscription   Statut Membre Dernière intervention   -  
anatolekadel Messages postés 102 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour, je débute en programmation Web. J'ai besoin de faire un petit script qui upload simplement une photo de l'utilisateur à un répertoire précis de mon serveur. Rien de bien compliqué en somme. Toutefois, je suis confronté à une erreur. J'imagine qu'elle est toute bête, mais là, j'abandonne, j'ai besoin de votre aide...

Voilà le code qui gère les images:

<?php
	if ($_FILES['photoAjout']['error'] > 0)
	{
		echo 'Problème : ';
		switch ($_FILES['photoAjout']['error'])
		{
			case 1: echo 'Le fichier est trop lourd, il ne doit pas dépassé les 10 Mo...'; break;
			case 2: echo 'Le fichier dépasse les 10 Mo'; break;
			case 3: echo 'Dépôt de photo incomplet'; break;
			case 4: echo 'Le dépôt n\'a pas été effectué'; break;
			case 5: echo 'Dépôt impossible, vous n\'avez pas renseigné le répertoire temporaire'; break;
			case 6: echo 'Echec du dépôt: impossible d\'écrire sur le disque'; break;
		}
		exit;
	}
	$fichier = 'content/'.$_FILES['photoAjout']['name'] ;
	if (is_uploaded_file($_FILES['photoAjout']['tmp_name']))
	{
		if (!move_uploaded_file($_FILES['photoAjout']['tmp_name'], $fichier))
		{
			echo 'Impossible d\'enregistrer la photo dans l\'album';
			exit;
		}
	}
	else
	{
		echo 'Problème: Attaque possible par le fichier';
		echo $_FILES['photoAjout']['name'];
		exit;
	}
	echo 'Le fichier a été correctement ajouté.<br></hr>';
	$contenu = file_get_contents($_fichier);
	$contenu = strip_tags($contenu);
	file_put_contents($contenu);
	fclose ($fp);
	echo $contenu.'<br></hr>';
	?>




L'erreur vient apparement du move_uploaded_file, car il m'affiche le message "Impossible d'enregistrer la photo dans l'album. J'ai cherché les renseignements de cette fonction (notamment sur le site php.net). Mais rien n'y fait; je ne comprends pas trop ce qui ne va pas. Je pense que ce sont les configurations de mon serveur qui sont mauvaises...

-J'ai un serveur Windows. J'ai vérifier d'avoir les droits d'écriture et de lecture du dossier Content.
-Concernant le répertoire temporaire de PHP, j'ai laissé vide, car il me semble que le répertoire temporaire devient alors celui par défaut...

Donc, d'où vient l'erreur ?

PS: Mon fichier de test est : test.jpg
A voir également:

4 réponses

Fallentree Messages postés 2309 Date d'inscription   Statut Membre Dernière intervention   209
 
Bonjour, j ai lu dans mon code
$value=str_replace("\\","/",$_FILES['fichier']['tmp_name'][$i]);    
$value=$destDir.$_FILES['fichier']['name'][$i];    

visiblement ton path est incorrecte...
essai de rajouter un
'./'

voir de faire un chemin absolu...
0
anatolekadel Messages postés 102 Date d'inscription   Statut Membre Dernière intervention   3
 
"content" est un sous-dossier du dossier qui contient mon script; donc il ne devrait pas y avoir besoin de rajouter de './' en plus, non ?
0
Fallentree Messages postés 2309 Date d'inscription   Statut Membre Dernière intervention   209
 
je sais pas avec les copier coller en serie des inculdes ...
j essaye de les mettre en absolue ...
Essaie de trouver le repertoire courant... getpwd() si je me souviens bien...
0
anatolekadel Messages postés 102 Date d'inscription   Statut Membre Dernière intervention   3
 
C'est getcwd(), non ?

Mais, c'est sensé m'afficher quoi au juste, le dossier du script qui transfère l'image, le dossier où l'image a été uploadé (donc, avant d'être déplacée) ou le dossier dans lequel le script est sensé couper/coller l'image ?
Parce là, il m'affiche le répertoire du script...
0