Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/10/2011, 14h45   #1
Invité de passage
 
Inscription : octobre 2011
Messages : 9
Détails du profil
Informations forums :
Inscription : octobre 2011
Messages : 9
Points : 0
Points : 0
Par défaut Upload avec Firefox

Bonjour à tous,

je viens de suivre pas mal de post concernant l'upload de fichier en PHP. j'arrive à faire quelque chose d'assez simple qui fonctionne avec IE8 et Chrome 14... par contre, ça ne fonctionne pas avec firefox 7!!

Voici le code html et le code php :

html :
Code html :
1
2
3
4
5
6
7
<form action="upload.php" method="post" enctype="multipart/form-data">
        <p>
                Formulaire d'envoi de fichier :<br>
                <input type="file" name="monfichier" /><br>
                <input type="submit" value="Envoyer le fichier" />
        </p>
</form>


php (upload.php)
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
$dossier = 'uploads/';
$fichier = basename($_FILES['monfichier']['name']);
$taille_maxi = 1000000000;
$taille = filesize($_FILES['monfichier']['tmp_name']);
$extensions = array('.png', '.gif', '.jpg', '.jpeg', '.zip', '.tar');
$extension = strrchr($_FILES['monfichier']['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['monfichier']['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;
}
?>
il n'y a rien dans les logs apache... bref, je reste perplexe!

Si jamais vous avez une piste pour m'éclairer la lanterne, ça serait top!

Merci!
bozoo2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/10/2011, 15h07   #2
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
fait un print_r($_FILES) au début de ton code pour voir
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/10/2011, 15h14   #3
Invité de passage
 
Inscription : octobre 2011
Messages : 9
Détails du profil
Informations forums :
Inscription : octobre 2011
Messages : 9
Points : 0
Points : 0
voici la réponse du print_r($_FILES);

Code :
Array ( [monfichier] => Array ( [name] => deathguard.jpg [type] => image/jpeg [tmp_name] => /home/xbmc/tmp/phpw2y070 [error] => 0 [size] => 106865 ) ) Upload effectué avec succès !
j'ai eu cela en utilisant chrome. sous Firefox, je n'ai aucun message qui apparait.
bozoo2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/10/2011, 15h19   #4
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
bizarre, ta page est valide w3c ?
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/10/2011, 15h24   #5
Invité de passage
 
Inscription : octobre 2011
Messages : 9
Détails du profil
Informations forums :
Inscription : octobre 2011
Messages : 9
Points : 0
Points : 0
non, il y a peu de chances pour qu'elle le soit :
voici le code que j'ai mis :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?php
header( 'content-type: text/html; charset=utf-8' );
print_r($_FILES);
$dossier = '/home/xbmc/Mariage/';
$fichier = basename($_FILES['monfichier']['name']);
$taille_maxi = 1000000000;
$taille = filesize($_FILES['monfichier']['tmp_name']);
$extensions = array('.png', '.gif', '.jpg', '.jpeg', '.zip', '.tar');
$extension = strrchr($_FILES['monfichier']['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['monfichier']['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;
}
?>
n'empêche que lorsque je tape directement la page upload.php, j'ai bien des erreurs =>normal vu qu'il n'a aucun fichier à uploader

mais lorsque j'essaye d'uploader 14_darkholiday2.jpg, j'ai bien les infos du print_r($_FILES) sous chrome (Cf mon dernier post), mais rien n'apparait sous FF.
bozoo2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/10/2011, 15h25   #6
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
je parle plutôt de celle du formulaire
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/10/2011, 15h28   #7
Invité de passage
 
Inscription : octobre 2011
Messages : 9
Détails du profil
Informations forums :
Inscription : octobre 2011
Messages : 9
Points : 0
Points : 0
ok!

pour le formulaire, rien de compliqué du tout :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<!DOCTYPE html
  PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Envoi de fichier</title>
</head>
<body>
 
<h1>Envoi d'un fichier:</h1>
 
<ol>
 
        <li>Faites une archive (zip) de toutes vos photos, vous pourrez les envoyer en une seule fois!</li>
        <li>Attention,  &ccedil;a peut prendre du temps! lancez &eacute;ventuellement &ccedil;a la nuit :)</li>
</ol>
</p>
<form action="upload.php" method="post" enctype="multipart/form-data">
        <p>
                Formulaire d'envoi de fichier :<br>
                <input type="file" name="monfichier" /><br>
                <input type="submit" value="Envoyer le fichier" />
        </p>
</form>
 
</body>
</html>
de là à ce que ça soit pas valide, ça serait balot!!
bozoo2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/10/2011, 15h33   #8
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
moi ça marche, dans ta page upload.php, mais juste un
Code :
1
2
3
<pre>
<?php
var_dump($_FILES);
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/10/2011, 15h43   #9
Invité de passage
 
Inscription : octobre 2011
Messages : 9
Détails du profil
Informations forums :
Inscription : octobre 2011
Messages : 9
Points : 0
Points : 0
voila ce que ça donne :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 
array(1) {
  ["monfichier"]=>
  array(5) {
    ["name"]=>
    string(15) "Darth Vader.jpg"
    ["type"]=>
    string(10) "image/jpeg"
    ["tmp_name"]=>
    string(24) "/home/xbmc/tmp/phptuqBFA"
    ["error"]=>
    int(0)
    ["size"]=>
    int(69629)
  }
}
Array
(
    [monfichier] => Array
        (
            [name] => Darth Vader.jpg
            [type] => image/jpeg
            [tmp_name] => /home/xbmc/tmp/phptuqBFA
            [error] => 0
            [size] => 69629
        )
 
)
Upload effectué avec succès !
et ceci, avec chrome... toujours rien avec FF!
bozoo2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/10/2011, 15h47   #10
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
juste le var_dump et rien d'autre, et quand tu dis "rien avec FF" c'est quoi page blanche ?
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/10/2011, 15h52   #11
Invité de passage
 
Inscription : octobre 2011
Messages : 9
Détails du profil
Informations forums :
Inscription : octobre 2011
Messages : 9
Points : 0
Points : 0
quand je dis rien avec FF, c'est effectivement une page blanche.
j'ai donc réécrit ma page upload.php avec uniquement le var_dump dedans.
voici le résultat avec chrome :

Code :
array(1) { ["monfichier"]=> array(5) { ["name"]=> string(19) "14_darkholiday2.jpg" ["type"]=> string(10) "image/jpeg" ["tmp_name"]=> string(24) "/home/xbmc/tmp/php7rA2XJ" ["error"]=> int(0) ["size"]=> int(65196) } }
bozoo2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/10/2011, 16h01   #12
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
ton niveau d'erreur est au maximum (error_reporting) ?
regarde les logs avec firebug
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/10/2011, 16h15   #13
Invité de passage
 
Inscription : octobre 2011
Messages : 9
Détails du profil
Informations forums :
Inscription : octobre 2011
Messages : 9
Points : 0
Points : 0
bon, le problème, c'est que je ne maitrise pas le débug...
j'ai téléchargé et installé firebug. Est ce que je peux abuser et te demander comment voir les logs/ compteurs d'erreurs avec cet outil?
bozoo2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/10/2011, 16h22   #14
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
Citation:
Envoyé par bozoo2 Voir le message
bon, le problème, c'est que je ne maitrise pas le débug...
j'ai téléchargé et installé firebug. Est ce que je peux abuser et te demander comment voir les logs/ compteurs d'erreurs avec cet outil?
tu cliques sur l'icone, tu va dans l'onglet réseau, tu l'active si c'est pas activé, ensuite tu réactualisés la page, les logs vont s'affichés
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/10/2011, 16h43   #15
Invité de passage
 
Inscription : octobre 2011
Messages : 9
Détails du profil
Informations forums :
Inscription : octobre 2011
Messages : 9
Points : 0
Points : 0
Merci pour l'aide

donc sur firebug, je n'ai aucune erreur lorsque j'upload le fichier. par contre, je n'ai aucune réponse non plus... ce qui n'est pas normal.

côté serveur, pas de problème de log : ils s'affichent bien lorsque je tape directement upload.php sans passer par le formulaire.
bozoo2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/10/2011, 16h55   #16
Invité de passage
 
Inscription : octobre 2011
Messages : 9
Détails du profil
Informations forums :
Inscription : octobre 2011
Messages : 9
Points : 0
Points : 0
comment dit on, déjà : eureka?

merci stealth35 de ton aide, je viens de trouver la source de mes problèmes...
IE et crhome utilisent un proxy, et pas Firefox. l'accès au réseau publique de firefox passe par un vieux routeur très capricieux qui doit réinitialiser la connexion lors de l'upload du fichier...

C'est cette absence de réponse de mon serveur qui m'a mis la puce à l'oreille (merci firebug! merci stealth35!)

A+
bozoo2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h33.


 
 
 
 
Partenaires

Hébergement Web