Maitrisez votre préparation <br> maximiser votre chance
Page d acceuil Acceuil
Bienvenue sur votre bureau MetaComputer
Page d acceuil Mes licences
Acquerir un logiciel ou un service MetaComputer
Page d acceuil Gestion commerciale :
Devis, commandes, stock...
connexion à modabbir bureau
Se retrouver dans un véritable marché
Page d acceuil Hassib (comptabilite generale) :
Saisir, importer votre balance..
Sortir vos etats fiscaux,
Envoyer votre declaration via internet
Page d acceuil Adae : Gestion de paye.. :
Gestion de personnels,
elaborer bulletins de paye
effectuer la declaration de CNSS
Page d acceuil Meta Clouds = MetaUSB.. :
Votre espace de stockage offert par
MetaComputer. c'eat aussi lié à vos base de données,
si vous travaillez avec une application MetaComputer
Page d acceuil Al Morakib
pour surveiller et controler par cameras
ma maison, mon lieu de travail, mes depots...
Page d acceuil Mes PCs :pour surveiller et controler
mes ordinateurs, ceux de mes enfants
et meme les pcs du lieu de travail
Page d acceuil Service Meta GPS :
Reperer vos vehicules
Suivre et controler a distance
tous vos vehicules..
Page d acceuil Meta FAX
Envoyer des FAX sans ligne
et sans apareil
Decoller...
Page d acceuil Emailer
Envoyer à des Miliers
des e-mails de prospection
Page d acceuil Service MetaSMS :
Envoyer et gerer vos SMS
Faire des compagnes publicitaires
Avec des résultats sures et optimaux
Page d acceuil Meta-eEntreprise :
Votre entreprise sur le net..
Lancer, suivre une action commerciale
Page d acceuil Meta-eFormation :
Des supports de formation tres adaptés
à votre développement personnel,
A une activité professionnelle de pointe...
Page d acceuil jeux :
jeux pour les enfants
aussi pour les grands
Super-Logiciels pour vous
Al Adae
Logiciel de gestion de paiy et de personnel ...
Al Modabbir Beton
Une version de Al Modabbir destinée aux entreprises dont l'activité est la production et vente du beton ...
ALYASSIR
Gestion simple et performante :
- Facturation
- BLs
- Devis
- Commandes
- Reglements
- Clients et fournisseurs
Al Fondoki
Logiciel de la gestion hôteliere:
Réservations, main courante, poits de vente, dépôts, occupation des chambres, ...
Plus
Projets pour vous
Net sou9 / e-souk
NetFavoris 
NOUS |  contacter-nous
Avenue des F.A.R. Rsidence Niama N6 - Ttouan (Maroc)
Tl :(+212) 8 90 60 52 25
Fax :(+212) 5 39 97 25 15
Mobile :(+212) 6 61 10 74 37
Email :mce@meta-computer.com
 

Acceuil  php, js(719)  Upload
Upload 2011-05-20

Fonctionnement
L'upload de fichier via le formulaire adapté se fait non pas par le protocole FTP, mais HTTP.
Pour simplifier, les données dont le fichier uploadé est constitué sont envoyées de la même manière que les données classiques d'un formulaire, mais en utilisant une "frontière" (boundary en anglais) pour séparer les données du fichier des données classiques du formulaire; On parle alors d'un flot de données multiple
Tout comme pour les emails donc, chaque partie du flot de données est accompagnée d'entêtes de description (type MIME, taille des données, etc…)
Pour en savoir plus, reportez vous à la RFC 1867 (cf lien en bas de page).

Formulaire d'upload
Passons maintenant à la pratique. :-)
Pour uploader un fichier, il nous faut d'abord constituer le formulaire adéquat.
En dehors, d'éventuels champs texte, password, checkbox ou autre, il nous faut placer un champ de type file. Il nous faut également spécifier que le formulaire est constitué de plusieurs parties (les données classiques, et les données du fichier). Pour cela, nous ajouterons l'attribut enctype avec la valeur multipart/form-data à la balise form du code html.

Nous avons donné au champ de type file le nom "fichier". Cela nous servira pour traiter le fichier uploadé.
Vous pouvez également ajouter un champ de type hidden avec pour nom MAX_FILE_SIZE et valeur la taille maximale en octet, que le fichier peut faire.
Note : Prenez soin de ne pas oublier l'attribut enctype de la balise form, c'est un erreur fréquente !

Réception et traitement
Une fois le formulaire soumis, et si tout se passe correctement, le fichier est alors copié dans le dossier temporaire des fichiers uploadés mais n'est pas encore présent sur l'espace du site, il nous faudra le copier sur notre espace web.
Quoi qu'il arrive, le fichier est supprimé du dossier temporaire à la fin de l'éxécution du script.
Le fichier uploadé est disponible via le tableau global $_FILES ($HTTP_POST_FILES si vous êtes avec php < 4.1.0) ou directement avec le nom que l'on a donné au formulaire si registar_globals est fixé à on dans la configuration de php.
Nous avons alors les variables suivantes (avec ici "fichier" pour le nom du champ de type file) :
$_FILES['fichier']['name']
Contient le nom d'origine du fichier
$_FILES['fichier']['tmp_name']
Nom temporaire du fichier dans le dossier temporaire du système
$_FILES['fichier']['type']
Contient le type MIME du fichier
$_FILES['fichier']['size']
Contient la taille du fichier en octets
$_FILES['fichier']['error']
Code de l'erreur (le cas échéant) (disponible à partir de php 4.2.0)
Première chose à faire, vérifier que l'opération s'est bien passée en vérifiant la présence du fichier dans le dossier temporaire; pour cela, nous avons à notre disposition la fonction is_uploaded_file().
Ensuite, vérifier ce qui nous a été envoyé; Si on s'attend à une image, on vérifie si l'extension est correcte par exemple.
Une fois que l'on est sùr que tout est ok, on copie le fichier sur notre espace web à l'aide de la fonction move_uploaded_file() qui est plus sùre que la fonction copy(), car elle vérifie que le fichier à copier vient bien du dossier temporaire (et donc, provient d'un formulaire d'upload).


Bien entendu, rien ne vous oblige à garder le nom d'origine (disponible dans $_FILES['fichier']['name']) du fichier lorsque vous le copiez sur votre espace web. Vous pouvez parfaitement lui attribuer un autre nom.
Note : J'attire votre attention sur le fait que le code ci-dessus comporte une faille de sécurité.

Maintenant, imaginez ce que peut faire un attaquant avec votre formulaire d'upload… Tout simplement placer du code PHP à exécuter sur votre serveur.
Il est donc indispensable de vérifier que le nom du fichier uploadé ne comporte pas le caractère null ni, tant qu'à faire, aucun autre caractère de contrôle ou slashe et backslashe. Voici un morceau de code basé sur celui donné plus haut pour réaliser cette opération :
if( preg_match('#[x00-x1Fx7F-x9F/]#', $name_file) )
{
exit("Nom de fichier non valide");
}
else if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )
{
exit("Impossible de copier le fichier dans $content_dir");
}

Informations complémentaires
Le protocole HTTP n'est pas, à l'origine, prévu pour l'upload de fichiers. Cette utilisation doit donc rester marginale, d'autant plus que la taille des fichiers uploadés est limitée par la directive upload_max_filesize dans le fichier de configuration de php. Par défaut, elle est fixée à 2 Mo mais une limite peut également être fixée dans la configuration du serveur.
Enfin, la plupart des hébergeurs gratuit désactivent la possibilité d'uploader des fichiers par cette méthode , donc vérifiez d'abord si l'upload est autorisé sur votre serveur ;-)



Commentaires des visiteurs :
Ajouter votre commentaire :
Nom :
E-mail :
Commentaire :


Espace Abonné

Mot passe oublié?

Créez un compte maintenant.
Publicité

 
Copyright ©2020. Metacomputer Engineering s.a.r.l . tous les droits réservés