Upload vide ?

SDK_akira Messages postés 24 Date d'inscription dimanche 6 février 2005 Statut Membre Dernière intervention 1 novembre 2005 - 24 juil. 2005 à 13:22
w_minisplash_w Messages postés 20 Date d'inscription vendredi 16 avril 2004 Statut Membre Dernière intervention 3 juillet 2006 - 25 juil. 2005 à 01:15
Bonjour





J'utilise un script d'upload que j'ai trouvé sur le net et qui marche
très bien sur d'autre site néanmoins la bizarement le fichier uploadé
n'existe pas, je ne pense pas que cela vienne du script d'upload mais
dans le doute le voici :


<tt>
// DEBUT DE L'UPLOAD DE L'IMAGE...

$width_max = 50; // Largeur max de l'image en pixels

$height_max = 50; // Hauteur max de l'image en pixels

$nom=$_FILES['fichier']['name'];

$extensions_ok = array("jpg","gif","jpeg",'png');

$extension = substr($nom,-3); // Récupération de l'extension

$infos_img = getimagesize($_FILES['fichier']['tmp_name']); // taille de l'image

// infos du fichier :

echo '';

print_r($_FILES);

echo'

';

// test de toutes les erreurs :

if ($_FILES['fichier']['error']) {

switch ($_FILES['nom_du_fichier']['error']){

case
1: // UPLOAD_ERR_INI_SIZE

echo"Le
fichier dépasse la limite autorisée par le serveur (fichier php.ini)
!";

break;

case
2: // UPLOAD_ERR_FORM_SIZE

echo
"Le fichier dépasse la limite autorisée dans le formulaire HTML !";

break;

case
3: // UPLOAD_ERR_PARTIAL

echo
"L'envoi du fichier a été interrompu pendant le transfert !";

break;

case
4: // UPLOAD_ERR_NO_FILE

echo
"Le fichier que vous avez envoyé a une taille nulle !";

break;

};

} else if(!in_array(strtolower($extension),$extensions_ok)) {

echo
'Le fichier n\'est pas d\'un format valide.';

} else if(($infos_img[0] > $width_max) || ($infos_img[1] > $height_max)) {

echo
'Le fichier est trop grand en hauteur / en largeur / en poid';

} else {

$chemin_destination = '../images/persos/';

move_uploaded_file($_FILES['fichier']['tmp_name'],
$chemin_destination.$_FILES['fichier']['name']);

// FIN DE L'UPLOAD DE L'IMAGE

</tt>





Il a troujours marché mais la il ne veut pas, le champ fichier est correct et du bon nom je pense :


<tt>

</tt>


et mon formulaire porte bien le 'enctype="multipart/form-data"', je suis bien en "post", je suis chez free
mais au final, j'ai un message d'erreur généré par le script comme quoi
l'image n'est pas d'un format valide et franchement je ne voit pas d'ou
cela vient... J'ai bien essayé de tester le script sur une autre page avec le code suivant :



<?php

// DEBUT DE L'UPLOAD DE L'IMAGE...

$width_max = 50; // Largeur max de l'image en pixels

$height_max = 50; // Hauteur max de l'image en pixels

$nom=$_FILES['fichier']['name'];

$extensions_ok = array("jpg","gif","jpeg",'png');

$extension = substr($nom,-3); // Récupération de l'extension

$infos_img = getimagesize($_FILES['fichier']['tmp_name']); // taille de l'image



// infos du fichier :

echo '';

print_r($_FILES);

echo'

';

// test de toutes les erreurs :

if ($_FILES['fichier']['error']) {

switch ($_FILES['fichier']['error']){


case 1: // UPLOAD_ERR_INI_SIZE


echo"Le fichier dépasse la limite autorisée par le serveur (fichier
php.ini) !";

break;


case 2: // UPLOAD_ERR_FORM_SIZE


echo "Le fichier dépasse la limite autorisée dans le formulaire HTML !";

break;


case 3: // UPLOAD_ERR_PARTIAL


echo "L'envoi du fichier a été interrompu pendant le transfert !";

break;


case 4: // UPLOAD_ERR_NO_FILE


echo "Le fichier que vous avez envoyé a une taille nulle !";

break;

};

} else if(!in_array(strtolower($extension),$extensions_ok)) {


echo 'Le fichier n\'est pas d\'un format
valide.';

} else if(($infos_img[0] > $width_max) || ($infos_img[1] > $height_max)) {


echo 'Le fichier est trop grand en hauteur / en largeur / en poid';

} else {

$chemin_destination = '../';


move_uploaded_file($_FILES['fichier']['tmp_name'],
$chemin_destination.$_FILES['fichier']['name']);

// FIN DE L'UPLOAD DE L'IMAGE

};

?>

<form method="post" enctype="multipart/form-data" action="<?php echo $PHP_SELF; ?>">





</form>

En testant, le fichier uploadé n'est plus vide mais il me retourne cette fois ce message d'erreur :

Warning: move_uploaded_file(): Unable to access ../laugh.gif in /var/www/free.fr/3/b/hxh.believe/test.php on line 36




Quelqu'un peut m'aider parce que la je commence à deprimer ca marche pas et ca m'enerve

4 réponses

cs_frop01 Messages postés 1352 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 19 novembre 2008 2
24 juil. 2005 à 14:29
essai dans le premier code:



changes la ligne suivante :



<tt>move_uploaded_file($_FILES['fichier']['tmp_name'],$chemin_destination.$_FILES['fichier']['name']);



par



$nomfic = </tt>
basename(
<tt>$_FILES['fichier']['name']</tt>
);


<tt>move_uploaded_file($_FILES['fichier']['tmp_name'],$chemin_destination.</tt><tt>$nomfic</tt><tt>);



@+

</tt>PS: Si votre problème est résolu, prière de bien vouloir clôturer votre message par une réponse acceptée !
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
24 juil. 2005 à 17:25
Salut,



plutôt que de vérifier les extensions vérifie le type mime du fichier,
car là on peut passer outre ta protection très facilement et t'envoyer
des fichiers de n'importe quel type.



Ensuite quel est l'erreur que te renvoit ton script, hormis le fait qu'il dise que tu as un fichier vide ?



Pour ce qui est des scripts d'upload je suis sûr qu'il y en a de meilleurs sur ce site, change de script ;-)



a +

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
SDK_akira Messages postés 24 Date d'inscription dimanche 6 février 2005 Statut Membre Dernière intervention 1 novembre 2005
25 juil. 2005 à 00:46
merci j'ai suivit ton conseil et en changeant de script, ca marche, je
ne sais pas d'ou ca venait exactement mais maintenant que ca marche
c'est bon ^^
0
w_minisplash_w Messages postés 20 Date d'inscription vendredi 16 avril 2004 Statut Membre Dernière intervention 3 juillet 2006
25 juil. 2005 à 01:15
Accepte sa réponse alors :), ça nous évite de chercher un moyen de résoudre ton problème pour s'apercevoir ensuite qu'il est déjà résolu.
0
Rejoignez-nous