13

upload en PHP

Embed Size (px)

Citation preview

Introduction

Configuration

Transfert des fichiers

Récupération et traitement

Sécurité

PLAN

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.

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

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.

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>

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">

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

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

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.

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).

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" .