PHP upload de fichier impossible

sdrogba Messages postés 74 Statut Membre -  
sdrogba Messages postés 74 Statut Membre -
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 :

Code :
Sélectionner tout - Visualiser dans une fenêtre à part

$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

Code :
Sélectionner tout - Visualiser dans une fenêtre à part

echo 'Photo 1 : <input name="upfile" type="file" size="50"><br />';

J'ai bien mis

Code :
Sélectionner tout - Visualiser dans une fenêtre à part

<form method="post" enctype="multipart/form-data" action="...">

Et php.ini

Code :
Sélectionner tout - Visualiser dans une fenêtre à part

;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;

; Whether to allow HTTP file uploads.
; <a href="http://php.net/file-uploads" target="_blank">https://www.php.net/manual-lookup.php?pattern=file-uploads&lang=en&scope=404quickref
file_uploads = On

; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
; <a href="https://www.php.net/manual/en/ini.core.php#ini.upload-tmp-dir" target="_blank">https://www.php.net/manual-lookup.php?pattern=upload-tmp-dir&lang=en&scope=404quickref
upload_tmp_dir = "c:/wamp/tmp"

; Maximum allowed size for uploaded files.
; <a href="https://www.php.net/manual/en/ini.core.php#ini.upload-max-filesize" target="_blank">https://www.php.net/manual-lookup.php?pattern=upload-max-filesize&lang=en&scope=404quickref
upload_max_filesize = 10M

Aidez moi svp je tourne en rond depuis quelques heures déja.

Merci d'avance

A voir également:

12 réponses

pitxu Messages postés 708 Statut Membre 95
 
Bonjour,

le mkdir fonctionne-t-il ?
0
sdrogba Messages postés 74 Statut Membre
 
Oui il fonstionne très bien
0
Alain_42 Messages postés 5413 Statut Membre 894
 
je ne comprend pas pourquoi mais $_FILES['upfile']['tmp_name'] renvoie blanc

est ce que le repertoire tmp existe bien dans ton repertoire wamp, c'est la que le fichier temporaire est téléchargé avant le move_updated_file(

autre remarque: ne mets pas C:/wamp/www/Geckos/Photo/'.$nom.'/'

mais utilises le chemin relatif par rapport à ton script php sinon lorsque tu vas transférer ton code chez ton hébergeur ça ne marchera pas
0
sdrogba Messages postés 74 Statut Membre
 
Pour ce qui du chemin j'utiliserais les chemin relatif la c'était juste pour que ce soit clair pour l'explication de mon problème ici.

Autrement comment je peux connaitre ce répertoire temporaire vu qu'il est blanc expliquez moi svp.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Alain_42 Messages postés 5413 Statut Membre 894
 
par ton explorateur windows tu vas sous C:/wamp et la tu devrait avoir un dossier tmp
0
sdrogba Messages postés 74 Statut Membre
 
Oui exacte j'ai bien un répertoire tmp dans C:/wamp avec des sess_...

Qu'est ce que ca veut dire?
0
Alain_42 Messages postés 5413 Statut Membre 894
 
les fichiers sess sont des fichiers de session qui n'ont pas été fermés

Le fichier temporaire qui est mis ici lors de l'upload est supprimé lorsque c'est fini

quelle est la taille du fichier que tu essayes d'uploader ?
0
sdrogba Messages postés 74 Statut Membre
 
2.37Mo
0
Alain_42 Messages postés 5413 Statut Membre 894
 
voilà ou est l'erreur,

avec cette methode en php tu ne peux pas uploader de fichier de taille supérieure à 1Mo (1,2 Mo au maxi)

c'est limité par la durée d'exécution du script php qui serait trop longue et les hébergeurs n'aiment pas ça

j'ai essayé ton script, corrigé un petit bug:

if(!file_exists($dossier)){
		mkdir($dossier, 0777);
	}


avec un petit fichier il fonctionne

Pour de gros fichiers il faut trouver une autre solution, vas voir JUpload
0
sdrogba Messages postés 74 Statut Membre
 
ok je regarde ca demain merci pour votre aide

je vous tient au courant
0
sdrogba Messages postés 74 Statut Membre
 
J'ai trouvé des endroits ou ils en parle mais pas d'exemple de fonctionnement et d'autrre qui utilise les mêmes fonctions que moi.
Auriez vous des liens svp?
0
sdrogba Messages postés 74 Statut Membre
 
J'ai besoin d'aide svp je n'avance pas

uuuuup
0