CC, Je ne trouve pas mon erreur sur un <form> PHP et HTML
Résolu
Fibros
Messages postés
31
Statut
Membre
-
jisisv Messages postés 3678 Statut Modérateur -
jisisv Messages postés 3678 Statut Modérateur -
(allez pas plus bas : solution= chmod 777 sur le dossier ./upload/)"merci a tous sa ma enlever une epine!!!"
Hellow world,
bjr à tous
je vous expose mon code enfin! mes code
voici "./index.html"
et voila ma page "./upload.php"
en sachant que le dossier "./upload/" est aussi existant
Mais il me revois toujours sur
"Echec de l'upload !"
a l'exception de ma feuille de style seul ces données sont présente
merci pour les futures réponse!!!
Hellow world,
bjr à tous
je vous expose mon code enfin! mes code
voici "./index.html"
<form method="POST" action="upload.php" enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="3000000000">
Fichier : <input type="file" name="fifi">
<input type="submit" name="envoyer" value="Envoyer le fichier">
</form>
et voila ma page "./upload.php"
en sachant que le dossier "./upload/" est aussi existant
<?php
$dossier = 'upload/';
$fichier = basename($_FILES['fifi']['name']);
$taille_maxi = 3000000000;
$taille = filesize($_FILES['fifi']['tmp_name']);
$extensions = array('.png', '.gif', '.jpg', '.jpeg','.avi','.rar','.zip');
$extension = strrchr($_FILES['fifi']['name'], '.');
if(!in_array($extension, $extensions))
{
$erreur = 'Vous devez uploader un fichier de type rar, zip, avi, png, gif, jpg, jpeg, txt ou doc...';
}
if($taille>$taille_maxi)
{
$erreur = 'Le fichier est trop gros...';
}
if(!isset($erreur))
{
$fichier = strtr(
$fichier, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy'
);
$fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
if(move_uploaded_file($_FILES['fifi']['tmp_name'], $dossier . $fichier))
{
echo 'Upload effectué avec succès !';
}
else
{
echo 'Echec de l\'upload !';
}
}
else
{
echo $erreur;
}
?>
Mais il me revois toujours sur
"Echec de l'upload !"
a l'exception de ma feuille de style seul ces données sont présente
merci pour les futures réponse!!!
3 réponses
-
Bonjour,
Pour commencer fais donc des ECHO de tes différentes variables pour voir ce qu'elles contiennent
Ensuite, vérifie dans ton PHP.INI la taille max autorisée pour les fichiers.
; Maximum allowed size for uploaded files.
upload_max_filesize = 40M
; Must be greater than or equal to upload_max_filesize
post_max_size = 40M
-
-
-
Le fichier php.ini contient plusieurs autres directives de configuration.
Si besoin, tu peux vérifier ces valeurs en exécutant le code php suivant :echo 'upload_max_filesize : ' . ini_get('upload_max_filesize'); echo '<br>'; echo 'post_max_size : ' . ini_get('post_max_size');
Un petit bonjour à jordane45 au passage ;) -
-
-
-
Salut,
Active l'affichage des erreurs php pendant le développement pour corriger plus facilement les erreurs. Ajoute ceci au début de ton script upload.php :ini_set('display_errors', true); error_reporting(E_ALL);
Quelques pistes à vérifier :
Le dossier upload est-il au même endroit que ton script upload.php ?
Le dossier upload a t-il les droits suffisants pour que PHP puisse écrire dedans ?
Quelle est la valeur de la variable $fichier après l'instruction preg_replace ?
Bonne journée, -
Chez moi ton code fonctionne.
Cependant:- le répertoire $dossier existe-t-il ?
- le serveur possède-t-il les droits en écriture sur ce répertoire ?
Quel serveur utilises-tu?
Moi , j'ai testé avec nginx avec php-fcgi:
User www-data ===> chown www-data.www-data uploads
Gates gave ^W sold you the windows.
GNU gave us the whole house.(Alexandrin)