JeuWeb - Crée ton jeu par navigateur
Problème avec mon uploader d'images - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Problème avec mon uploader d'images (/showthread.php?tid=3763)



Problème avec mon uploader d'images - kersam - 04-03-2009

Bonjour a tous !!

Description du problème : j'ai fait un uploader d'images. le formulaire marche niquel mais dès qu'on clique sur upload, sa met "se fichier n'est pas une image". c'est au niveau de la page upload.php qui génère la demande qui déconne.
But de ce topic : quon me donne une explication ou une résolution au problème.
La page upload.php :
Code PHP :
<?php

if( isset($_POST['upload']) ) // si formulaire soumis
{
$content_dir = 'kerimici/kersam-home/upload/img'; // dossier où sera déplacé le fichier

$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) )
{
exit(
"Impossible de copier le fichier dans $content_dir");
}

echo
"Le fichier a bien été uploadé";
}

?>
Merci pour votre aide Wink
PS : j'ai CHMODER sa change rien Sad


RE: Problème avec mon uploader d'images - kersam - 05-03-2009

Comment je quoi ??


RE: Problème avec mon uploader d'images - Roworll - 05-03-2009




RE: Problème avec mon uploader d'images - Sylvain - 05-03-2009

Bonjour.
Je te réponds en vitesse :

ne pas oublier dans le forumulaire l'attribut : enctype='multipart/form-data'
dans la balise <form> sinon l'image ne passera pas d'où la délicieuse allusion au mime Marceau dans la réponse précédente.

Ensuite je te donne le code que j'ai testé avec l'explication sur ce qui n'allait pas :
Formulaire primitif sans DTD (c'est mal)
<html>
<form action='test_45.php' method='post' enctype='multipart/form-data'>
<input type='hidden' name='ok' value='ok' />
<input type='file' name='upload' /><input type="submit" />
</form>
</html>
<?php

if( isset($_POST['ok']) ) // si formulaire soumis
{
$tmp_file = $_FILES['upload']['tmp_name'];
if( !is_uploaded_file($tmp_file) )
{
exit("Le fichier est introuvable");
}
// on vérifie maintenant l'extension
// NON $_FILES['upload']['type'] donne le type mime, par exemple image/jpg et non l'extension
// Je vérifie donc que le mot image se trouve dans le type mime.
// On aurait pu aussi vérifier l'extension mais pas comme tu essayais de le faire

if(!eregi('image/', $_FILES['upload']['type']))
{
exit("Le fichier n'est pas une image");
}

// on copie le fichier dans le dossier de destination. je copie sur place pour simplifier
$name_file = $_FILES['upload']['name'];
if( !move_uploaded_file($tmp_file,$name_file) )
{
exit("Impossible de copier le fichier dans $content_dir");
}
echo "Le fichier a bien été uploadé";
}
?>

Amicalement,

Sylvain.


RE: Problème avec mon uploader d'images - kersam - 05-03-2009

Merci beaucoup mais pourquoi ta enlevé la ligne :
$content_dir = 'kerimici/kersam-home/upload/img';
comment le formulaire c'est ou envoyer limage ??


RE: Problème avec mon uploader d'images - Sylvain - 06-03-2009

(05-03-2009, 09:39 PM)kersam a écrit : Merci beaucoup mais pourquoi ta enlevé la ligne :
$content_dir = 'kerimici/kersam-home/upload/img';
comment le formulaire c'est ou envoyer limage ??

Tu as raison, j'ai simplifié. Dans ce cas la copie se fait dans le répertoire où se trouve le script mais réintroduit un chemin et ça marchera.