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 -
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:
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
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:
- PHP | Interaction avec le système de fichier
- Fichier bin - Guide
- Restauration systeme windows 10 - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
4 réponses
Bonjour, j ai lu dans mon code
visiblement ton path est incorrecte...
essai de rajouter un
voir de faire un chemin absolu...
$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...
"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 ?
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...
j essaye de les mettre en absolue ...
Essaie de trouver le repertoire courant... getpwd() si je me souviens bien...