Upload
khalid-allili
View
2.962
Download
0
Embed Size (px)
Citation preview
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" .