Top Banner
13

upload en PHP

Apr 16, 2017

Download

Education

Khalid ALLILI
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: upload en PHP
Page 2: upload en PHP

Introduction

Configuration

Transfert des fichiers

Récupération et traitement

Sécurité

PLAN

Page 3: upload en PHP

IntroductionDeux ordinateurs reliés par une connexion Internet.Upload est une opération consiste a faire passer un

fichier de l'ordinateur du visiteur vers le serveur.

Page 4: upload en PHP

Configuration

Avant d'uploader les fichiers via PHP, il faut prendre en consideration quelques paramètres qui se trouvent dans php.ini.

Sous Microsoft Windows : C:\windows\php.ini

Sous Linux : le chemin se diffère selon l'installation.

/usr/local/php /usr/local/php/lib/php.ini

Page 5: upload en PHP

Configuration file_uploads(boolean) : Autorise ou non le chargement de fichiers par HTTP upload_tmp_dir(String) : Le répertoire temporaire utilisé pour stocker les fichiers lors du chargement. Si non spécifié, PHP utilisera celui par défaut du système. upload_max_filesize(Integer) : La taille maximale en octets d'un fichier à charger. Sa valeur est indiquè en octet(entier), sinon on peux utiliser la notation sténographique.

post_max_size(Integer) : la taille maximale des données reçues par la méthode POST. Cette option affecte également les fichiers chargés.

memory_limit(integer) : la mémoire limite qu'un script est autorisé à allouer.

max_input_time(Integer) : la durée maximale pour analyser les données d'entrée, via POST, GET et téléchargement de fichier. max_execution_time (Integer) : le temps maximal d'exécution d'un script, en Sec.

Page 6: upload en PHP

Transfert Des Fichiers  

Création du formulaire: Pour envoyer un fichier au serveur par formulaire, il faut préciser l'enctype, c'est à dire le type d'encodage du fichier.

L'enctype à utiliser est multipart/form-data..

<form method="POST" action="upload.php" enctype="multipart/form- data"> <!-- Le contenu du formulaire est à placer ici... -->

</form>

Page 7: upload en PHP

Transfert Des Fichiers  

Champ Fichier :Pour trouver le fichier, il faut permettre à l'utilisateur de choisir un fichier sur son disque dur en utilisant un champ du type File.

<input type="File" name="user_file">

Limiter la taille du fichierIl faut créer un champ caché, sous le nom "MAX_FILE_SIZE" et dont la valeur est la taille maximale du fichier à uploader en octets.

<input type="hidden“ name="MAX_FILE_SIZE" value="100000">

Page 8: upload en PHP

Récupération et TraitementMécanisme du récupération:

PHP s'occupe des données envoyées par le formulaire:

Les champs textuels (text, checkbox, select, textarea, ...) sont copiés dans le tableau superglobal $_POST

Les informations concernant les champs de type file sont enregistrées dans le tableau superglobal $_FILES

Les fichiers sont temporairement placés dans le dossier temporaire du serveur

Page 9: upload en PHP

Récupération et TraitementMécanisme du récupération:

Les informations sur les fichiers envoyés sont contenues dans le tableau global $_FILES contient :

VARIABLE NOM

$_FILES[‘user_file']['name'] Le nom original du fichier, tel que sur la machine du client.

$_FILES[‘user_file']['tmp_name'] Le nom temporaire du fichier qui sera chargé sur la machine serveur

$_FILES[‘user_file']['size'] La taille, en octets, du fichier téléchargé.

$_FILES[‘user_file’]['type'] Le type MIME du fichier. Par exemple : « application/pdf »

$_FILES[‘user_file']['error'] Le code d'erreur associé au téléchargement du fichier

Page 10: upload en PHP

Récupération et Traitement UPLOAD_ERR_OK (valeur =0): Aucune erreur, le téléchargement est correct

UPLOAD_ERR_INI_SIZE (valeur=1): Le fichier téléchargé excède la taille de upload_max_filesize , configurée dans le php.ini.  UPLOAD_ERR_FORM_SIZE (valeur=2): Le fichier téléchargé excède la taille de MAX_FILE_SIZE, qui a été spécifiée dans le formulaire HTML.  UPLOAD_ERR_PARTIAL (valeur=3) : Le fichier n'a été que partiellement téléchargé.   UPLOAD_ERR_NO_FILE (valeur=4) : Aucun fichier n'a été téléchargé.  UPLOAD_ERR_NO_TMP_DIR (valeur=6): Un dossier temporaire est manquant.  UPLOAD_ERR_CANT_WRITE (valeur=7):Échec de l'écriture du fichier sur le disque.

Page 11: upload en PHP

Récupération et TraitementUpload:

Lorsque le formulaire est envoyé, le fichier est envoyé sur le

serveur dans un répertoire temporaire. après il faut le stocker

d’une manière permanente dans un répertoire a l’aide des

fonctions:

is_upload_file() , move_uploaded_file()

N.B :

il faut accordé les droits d'écriture au répertoire(chmod).

Page 12: upload en PHP

SécuritéLe type de fichier :

Par exemple, un génie essaie d’uploader un fichier PHP qui

permet de récupérer des informations depuis notre serveur.

La taille maximum de fichier:

Un utilisateur peut enregistrer le formulaire sur son disque et modifier la valeur du champ "MAX_FILE_SIZE" .

Page 13: upload en PHP