Prendre un grand nombre de valeurs correspondant aux

This preview shows page 22 - 24 out of 31 pages.

prendre un grand nombre de valeurs, correspondant aux types MIME des fichiers acceptés,par exemple "image/gif", comme dans l’exemple 6-6, ou "text/html". Un fichier d’un typedifférent est rejeté, ce qui confère une protection contre les utilisateurs mal intentionnés.Contrairement aux exemples précédents, l’élément <form>doit avoir l’attribut methodà lavaleur postet l’attribut enctypeà la valeur multipart/form-data.Précaution supplémentaire, vous pouvez envisager de limiter la taille des fichiers à télé-charger en ajoutant au formulaire un champ caché MAX_FILE_SIZE, dont l’attribut valuecontienne la taille maximale admise en octet. Cette valeur est récupérée dans la variable$_POST["MAX_FILE_SIZE"] (repère )lorsque le champ caché est défini par le code suivant(repère ) :<input type="hidden" name="MAX_FILE_SIZE" value="100000" />L’utilisation de ce champ n’est pas obligatoire puisque le fichier php.ini du serveurcontient la directive "upload_max_filesize", dont la valeur est un entier indiquant la taillemaximale en octet admise par défaut par le serveur. En local avec Wampserver, cettevaleur est de 2 Mo. L’hébergeur peut toutefois définir une valeur très différente, qu’ilvous appartient de vérifier à l’aide de la fonction phpinfo().L’ajout d’un bouton d’envoi à votre formulaire est bien sûr toujours indispensable.Lors de l’affichage de la page, l’utilisateur se retrouve face à ce qui ressemble à une zonede saisie de texte accompagnée d’un bouton dont l’intitulé est « Parcourir... ». Il peutsaisir manuellement l’emplacement exact du fichier à transférer ou le choisir sur sondisque en cliquant sur le bouton, comme il le ferait pour ouvrir un fichier à partir d’untraitement de texte, par exemple. Il n’est donc pas nécessaire de lui expliquer la procédureen détail.Une fois le fichier sélectionné, un clic sur le bouton Submit provoque l’envoi du fichierau serveur et son traitement par un script, que vous devez encore écrire. À ce moment, lefichier est bien transféré sur le serveur, mais il se trouve dans un répertoire tampon définipar la directive "upload_tmp_dir"du fichier php.ini. Si vous n’en faites rien, il est perdulors de la déconnexion du client. De plus, il est enregistré sous un nom différent de celuiqu’il avait sur le poste client, et vous ne savez pas encore sous quel nom, puisque celui-ciest créé arbitrairement par le serveur.De même que pour le transfert de données simples, vous allez utilisé les tableaux super-globaux $_POSTou $_GET. Vous disposez également depuis la version PHP 4.1 du tableauassociatif multidimensionnel $_FILES, qui contient les informations nécessaires au traitementdu fichier transféré.
PHP 5 – Cours et exercices176Si, comme dans le code de l’exemple 6-6, le nom de l’élément <input type="file"../>estname="fich", vous pouvez lire les valeurs suivantes :$_FILES["fich"]["name"] : contient le nom qu’avait le fichier sur le poste client.$_FILES["fich"]["type"] : contient le type MIME initial du fichier et permet uncontrôle et une censure éventuelle du fichier transféré.$_FILES["fich"]["size"] 

  • Left Quote Icon

    Student Picture

  • Left Quote Icon

    Student Picture

  • Left Quote Icon

    Student Picture