Php upload défaillante
Bonjour,
Je suis entrain de monter un site et en attendant d'avoir mes accès sur mon hébergeur je fais des essais en local, j'en suis à essayer d'uploader des images.
Voici mon code :
$dossier = 'C:/wamp/www/Geckos/Photo/'.$nom.'/';
mkdir($dossier, 0777);
$fichier = basename($_FILES['upfile']['name']);
$taille_maxi = 100000;
$taille = filesize($_FILES['upfile']['tmp_name']);
$extensions = array('.png', '.gif', '.JPG', '.jpeg');
$extension = strrchr($_FILES['upfile']['name'], '.');
//Début des vérifications de sécurité...
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
$erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg, txt ou doc...';
}
if($taille>$taille_maxi)
{
$erreur = 'Le fichier est trop gros...';
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
//On formate le nom du fichier ici...
$fichier = strtr($fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
echo "fichier ".$fichier;
echo "dossier ".$dossier;
echo"fonction ".$_FILES['upfile']['tmp_name']." gggggg ". $dossier . $fichier;
if(move_uploaded_file($_FILES['upfile']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
{
echo 'Upload effectué avec succès !';
}
else //Sinon (la fonction renvoie FALSE).
{
echo 'Echec de l\'upload !';
}
}
else
{
echo $erreur;
}
C'est la dernière partie de code qui ne va pas il semblerait que la fonction move_uploaded_file retourne faux à chaque fois.
Enfin et ça je ne comprend pas pourquoi mais $_FILES['upfile']['tmp_name'] renvoie blanc et je ne sais pas quoi faire voici la partie formulaire
echo 'Photo 1 : <input name="upfile" type="file" size="50"><br />';
Aidez moi svp je tourne en rond depuis quelques heures déja.
Merci d'avance
Je suis entrain de monter un site et en attendant d'avoir mes accès sur mon hébergeur je fais des essais en local, j'en suis à essayer d'uploader des images.
Voici mon code :
$dossier = 'C:/wamp/www/Geckos/Photo/'.$nom.'/';
mkdir($dossier, 0777);
$fichier = basename($_FILES['upfile']['name']);
$taille_maxi = 100000;
$taille = filesize($_FILES['upfile']['tmp_name']);
$extensions = array('.png', '.gif', '.JPG', '.jpeg');
$extension = strrchr($_FILES['upfile']['name'], '.');
//Début des vérifications de sécurité...
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
$erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg, txt ou doc...';
}
if($taille>$taille_maxi)
{
$erreur = 'Le fichier est trop gros...';
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
//On formate le nom du fichier ici...
$fichier = strtr($fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
echo "fichier ".$fichier;
echo "dossier ".$dossier;
echo"fonction ".$_FILES['upfile']['tmp_name']." gggggg ". $dossier . $fichier;
if(move_uploaded_file($_FILES['upfile']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
{
echo 'Upload effectué avec succès !';
}
else //Sinon (la fonction renvoie FALSE).
{
echo 'Echec de l\'upload !';
}
}
else
{
echo $erreur;
}
C'est la dernière partie de code qui ne va pas il semblerait que la fonction move_uploaded_file retourne faux à chaque fois.
Enfin et ça je ne comprend pas pourquoi mais $_FILES['upfile']['tmp_name'] renvoie blanc et je ne sais pas quoi faire voici la partie formulaire
echo 'Photo 1 : <input name="upfile" type="file" size="50"><br />';
Aidez moi svp je tourne en rond depuis quelques heures déja.
Merci d'avance
6 réponses
-
Contributeurdans ton formulaire, tu as bien mis le enctype comme ca:
<form method="post" action="page.php" enctype="multipart/form-data"> -
Oui je l'ai bien mis, je n'arrive pas a trouvé ce qui ne va pas
-
Contributeur$nom est bien declaré?
pexu tu envoyer ca sur un site que je teste? -
Contributeurpremiere ligne:
$dossier = 'C:/wamp/www/Geckos/Photo/'.$nom.'/';
-
Contributeurdonc tu as bien mis un $nom = $_POST['nom'], ok.
fais un echo de ton upload_file pour voir ce qu' il te dit.
-
$fichier = IMGP1922.JPG
$dossier = C:/wamp/www/Geckos/Photo/jhhjg
$_FILES['upfile']['tmp_name'] = il renvoi rien-
-
-
-
php.ini
;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;
; Whether to allow HTTP file uploads.
; http://php.net/file-uploads
file_uploads = On
; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
; https://www.php.net/manual/en/ini.core.php#ini.upload-tmp-dir
upload_tmp_dir = "c:/wamp/tmp"
; Maximum allowed size for uploaded files.
; https://www.php.net/manual/en/ini.core.php#ini.upload-max-filesize
upload_max_filesize = 10M -
-