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 12/12/2006, 13h20   #1
Nouveau Membre du Club
 
Inscription : mars 2005
Messages : 130
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 130
Points : 27
Points : 27
Par défaut Vérification de fichiers uploadés

Bonjour,

J'au un formulaire comme ceci avec 2 fichiers à uploader:

Code html :
1
2
3
4
5
6
7
<form method="post" action="reception.php" enctype="multipart/form-data">
<p>
<input type="file" name="fichier1" size="30">
<input type="file" name="fichier2" size="30">
<input type="submit" name="upload" value="Uploader">
</p>
</form>

Ensuite j'ai mon fichier reception.php qui vérifie et si c ok copie les fichieres dans le répertoire test_upload. Voici le code:

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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
 
<?php
 
if( isset($_POST['upload']) ) // si formulaire soumis
{
    $content_dir = 'test_upload/'; // dossier où sera déplacé le fichier
 
    $tmp_file1 = $_FILES['fichier1']['tmp_name'];
 
    if( !is_uploaded_file($tmp_file1) )
    {
        exit("Le fichier est introuvable");
    }
 
    // on vérifie maintenant l'extension
    $type_file1 = $_FILES['fichier1']['type'];
 
    if( !strstr($type_file1, 'jpg') && !strstr($type_file1, 'jpeg') && !strstr($type_file1, 'bmp') && !strstr($type_file1, 'gif') )
    {
        exit("Le fichier n'est pas une image");
    }
 
    // on copie le fichier dans le dossier de destination
    $name_file1 = $_FILES['fichier1']['name'];
 
    if( !move_uploaded_file($tmp_file1, $content_dir . $name_file1) )
    {
        exit("Impossible de copier le fichier dans $content_dir");
    }
 
    echo "Le fichier a bien été uploadé";
}
 
?>
<?php
 
if( isset($_POST['upload']) ) // si formulaire soumis
{
    $content_dir = 'test_upload/'; // dossier où sera déplacé le fichier
 
    $tmp_file2 = $_FILES['fichier2']['tmp_name'];
 
    if( !is_uploaded_file($tmp_file2) )
    {
        exit("Le fichier est introuvable");
    }
 
    // on vérifie maintenant l'extension
    $type_file2 = $_FILES['fichier2']['type'];
 
    if( !strstr($type_file2, 'jpg') && !strstr($type_file2, 'jpeg') && !strstr($type_file2, 'bmp') && !strstr($type_file2, 'gif') )
    {
        exit("Le fichier n'est pas une image");
    }
 
    // on copie le fichier dans le dossier de destination
    $name_file2 = $_FILES['fichier2']['name'];
 
    if( !move_uploaded_file($tmp_file2, $content_dir . $name_file2) )
    {
        exit("Impossible de copier le fichier dans $content_dir");
    }
 
    echo "Le fichier a bien été uploadé";
}
 
?>
En fait, le transfert d'upload marche lorsque le fichier1 fichier 2 sont bien des images.
Il arrive a transferer le fichier1 si fichier1 est une image et le 2 nen ést pas une

Par contre,ds que le fichier1 n'est pas une image, l'upload loupe meme si le fichier2 est une image.

Merci de votre aide
pod1978 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2006, 13h32   #2
Membre confirmé
 
Avatar de frol
 
Inscription : mars 2005
Messages : 288
Détails du profil
Informations personnelles :
Âge : 23

Informations forums :
Inscription : mars 2005
Messages : 288
Points : 268
Points : 268
Envoyer un message via AIM à frol Envoyer un message via MSN à frol Envoyer un message via Skype™ à frol
exit("Le fichier n'est pas une image");

exit quitte ton appli php
frol est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2006, 13h33   #3
Membre émérite

 
Avatar de FCYPBA
 
Inscription : novembre 2004
Messages : 735
Détails du profil
Informations personnelles :
Âge : 33
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : novembre 2004
Messages : 735
Points : 924
Points : 924
Evidemment que cela ne fonctionne pas puisque tu fais un exit()

Ensuite dans ton code tu fais deux fois la même chose. Pourquoi ???

$_FILES est un tableau, utilise une boucle.
__________________
Pierre
1. Dans le manuel ( PHP, MySQL,..., rayez la mention inutile), tu te plongeras à deux fois plutôt qu'aucune.
2. Dans la doc php, tu liras attentivement les sections Chaines de caractères, Tableaux et Système de fichiers
3. Un code rapide c'est bien, un code maintenable c'est mieux
...

Why was the font tag an orphan ? Because it didn't have a font-family.
FCYPBA est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2006, 13h40   #4
Nouveau Membre du Club
 
Inscription : mars 2005
Messages : 130
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 130
Points : 27
Points : 27
Merci de vos réponses rapides.

En fait je fais deux fois la meme chose pour traiter chaque fichier.
Il est vrai qu'il serais plus intéressant de faire une boucle avec un tableau mais je ne sais pas trop comment y procéder.

Merci de votre aide
pod1978 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2006, 13h54   #5
Membre confirmé
 
Avatar de frol
 
Inscription : mars 2005
Messages : 288
Détails du profil
Informations personnelles :
Âge : 23

Informations forums :
Inscription : mars 2005
Messages : 288
Points : 268
Points : 268
Envoyer un message via AIM à frol Envoyer un message via MSN à frol Envoyer un message via Skype™ à frol
il y a encore bien mieux qu'une boucle... une fonction
frol est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2006, 13h59   #6
Membre actif
 
Inscription : juillet 2003
Messages : 257
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 257
Points : 162
Points : 162
Citation:
Envoyé par pod1978
Merci de vos réponses rapides.

En fait je fais deux fois la meme chose pour traiter chaque fichier.
Il est vrai qu'il serais plus intéressant de faire une boucle avec un tableau mais je ne sais pas trop comment y procéder.

Merci de votre aide
cherche un petit peu sur ce meme forum, ce sujet a été evoqué et le code proposé plusieurs fois
SegmentationFault est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2006, 14h02   #7
Nouveau Membre du Club
 
Inscription : mars 2005
Messages : 130
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 130
Points : 27
Points : 27
ok merci pour vos réponses

je vais rechercher
pod1978 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h39.


 
 
 
 
Partenaires

Hébergement Web