Probleme upload image php

Résolu/Fermé
Messages postés
67
Date d'inscription
mercredi 29 avril 2009
Statut
Membre
Dernière intervention
25 octobre 2013
-
Messages postés
67
Date d'inscription
mercredi 29 avril 2009
Statut
Membre
Dernière intervention
25 octobre 2013
-
Bonjour,


Je veux créer un formulaire d'upload d'image chez free mais j'obtiens l'erreur suivante lorsque j'utilise la fonction filesize :

Warning: filesize() [function.filesize]: stat failed for logo2.jpg in /mnt/153/sda/5/3/morecraft/espace_membre.php on line 135

J'ai fais des recherches et il se trouve que upload_tmp_dir dans php.ini n'a pas de valeur (alors qu'il doit être, apparement à 777).

Avez-vous une solution en sachant que je n'ai pas accès au php.ini ?

Merci d'avance pour votre réponse.

4 réponses

Messages postés
1935
Date d'inscription
mercredi 25 juin 2008
Statut
Membre
Dernière intervention
11 mai 2014
274
Bonsoir,

le morceau de code concerné serait le bienvenue.
est ce que ce code fonctionne en local ?

les droits maximum à attribuer à un dossier sont 755 et ne devrait jamais être 777.
Messages postés
67
Date d'inscription
mercredi 29 avril 2009
Statut
Membre
Dernière intervention
25 octobre 2013
3
Bonjour,

Voilà le code du formulaire :


<form method ="POST" action ="uplaod.php" enctype ="multipart/form-data">
<!-- On limite le fichier à 100Ko -->
<input type ="hidden" name ="MAX_FILE_SIZE" value ="100000">
Fichier : <input type ="file" name ="skin">
<input type ="submit" name ="envoyer" value ="Envoyer le fichier">
</form >

Et la page de traitement :


<?php
$dossier = './images/avatar/'; //repertoire de destination
$fichier = basename ($_FILES['skin']['name']);
$taille_maxi = 100000;
$taille = filesize ($_FILES['skin']['tmp_name']); // ici le filesize
$extensions = array ('.png', '.gif', '.jpg', '.jpeg', '.bmp'); //la liste des extensions utilisable
$extension = strrchr ($_FILES['skin']['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);
if (move_uploaded_file ($_FILES['skin']['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;
}

?>

Malheureusement, je suis en vacance et je ne peux pas tester le code en local.

Pouvez-vous m'expliquer ce que sont les droits d'accès à un dossier svp ?
Messages postés
1935
Date d'inscription
mercredi 25 juin 2008
Statut
Membre
Dernière intervention
11 mai 2014
274
il ne faut pas utiliser filesize c'est normal de ne pas avoir les droits à ce moment.

remplace

$taille = filesize ($_FILES['skin']['tmp_name']);

par

$taille =$_FILES['skin']['size'];
Messages postés
67
Date d'inscription
mercredi 29 avril 2009
Statut
Membre
Dernière intervention
25 octobre 2013
3
Merci beaucoup ça marche :)