Probleme upload image php

Résolu/Fermé
adrienmarty Messages postés 67 Date d'inscription mercredi 29 avril 2009 Statut Membre Dernière intervention 25 octobre 2013 - 21 oct. 2013 à 17:50
adrienmarty Messages postés 67 Date d'inscription mercredi 29 avril 2009 Statut Membre Dernière intervention 25 octobre 2013 - 24 oct. 2013 à 11:26
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.
A voir également:

4 réponses

Atropa Messages postés 1940 Date d'inscription mercredi 25 juin 2008 Statut Membre Dernière intervention 11 mai 2014 274
21 oct. 2013 à 23:32
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.
0
adrienmarty Messages postés 67 Date d'inscription mercredi 29 avril 2009 Statut Membre Dernière intervention 25 octobre 2013 3
23 oct. 2013 à 14:18
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 ?
0
Atropa Messages postés 1940 Date d'inscription mercredi 25 juin 2008 Statut Membre Dernière intervention 11 mai 2014 274
23 oct. 2013 à 19:07
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'];
0
adrienmarty Messages postés 67 Date d'inscription mercredi 29 avril 2009 Statut Membre Dernière intervention 25 octobre 2013 3
24 oct. 2013 à 11:26
Merci beaucoup ça marche :)
0