Maison  >  Article  >  développement back-end  >  Analyse d'exemples de téléchargement de formulaires en PHP

Analyse d'exemples de téléchargement de formulaires en PHP

小云云
小云云original
2018-03-31 09:29:341921parcourir


Cet article partage principalement avec vous l'analyse d'exemples de téléchargement de formulaires en PHP, principalement sous forme de texte et de code. J'espère qu'il pourra aider tout le monde.
Téléchargement du formulaire : données du navigateur vers le serveur. (Transmis lorsque le navigateur envoie une requête au serveur.)

Les données du formulaire sont divisées en deux types : 1. Type de chaîne (codage de flux d'octets, c'est-à-dire qu'il existe certaines règles de codage)

                                                 2. Type de fichier (encodage binaire, c'est-à-dire uniquement transmission binaire, aucune règle d'encodage n'est suivie) 🎜> L'action d'attribut définit la soumission L'action du formulaire, c'est-à-dire que le tableau spécifie le serveur script pour traiter le formulaire téléchargé. Si l'attribut action est omis, il indique le traitement du script en cours ;

L'attribut méthode spécifie la méthode http utilisée lors de la soumission du formulaire. La valeur par défaut est GET, et POST et GET sont facultatifs. (Les données du formulaire sont visibles dans la barre d'adresse lors de l'utilisation de GET, mais ne sont pas visibles dans POST) ; (Il s'agit de l'option par défaut, ce qui signifie que toutes les chaînes sont codées), multipart/form-data (ne les code pas, cette valeur doit être utilisé lors du téléchargement de fichiers), text/plain (les espaces sont convertis en +, mais les caractères spéciaux ne sont pas encodés) Encodage)
<form action=&#39;&#39; method=&#39;&#39; enctype=&#39;&#39;>
        <input type=&#39;&#39; name=&#39;&#39; value=&#39;&#39;>
</form>

Dans la balise d'entrée :

L'attribut type peut inclure du texte ( saisie de texte), radio (bouton radio), case à cocher (sélection multiple), soumettre (soumission de formulaire), mot de passe (mot de passe) : Utiliser le formulaire crypté), fichier (téléchargement de fichier).

L'attribut name est obligatoire. Après avoir soumis le formulaire, la valeur de chaque contrôle est stockée dans le tableau $_GET ou $_POST, et name est utilisé comme indice de tableau de la valeur correspondante.

L'attribut value représente la valeur de l'espace. S'il y a une entrée externe, la valeur de l'entrée externe est stockée, ce qui équivaut à une valeur par défaut. Cet attribut n'est pas obligatoire.


Réception des données

Après avoir reçu les données du navigateur, le serveur utilisera différentes méthodes de traitement selon le type de données :

1. Chaîne les données de type sont stockées dans les variables $_GET/$_POST.

2. Les données du fichier sont stockées dans un répertoire temporaire (enregistrées dans un cycle de script et seront automatiquement supprimées une fois expirées)



Le mot de passe n'est pas affiché ici car il s'agit d'un attribut type='password'.

Une fois le téléchargement réussi, var_dump($_POST) sous le script spécifié dans l'arrière-plan du serveur obtient les résultats suivants :
<!DOCTYPE HTML>
<html>
	<head>
		<meta http-equiv=&#39;Content-Type&#39; content="text/html;charset=utf8"/>
	</head>
	<body>
		<form action=&#39;test.php&#39; method=&#39;POST&#39; enctype=&#39;multipart/form-data&#39;>
			用户名:<input type=&#39;text&#39; name=&#39;username&#39; ></br>
			密码:<input type=&#39;password&#39; name=&#39;password&#39;></br>
			文件上传:<input type=&#39;file&#39; name=&#39;filename&#39;></br>
			上传:<input type=&#39;submit&#39; name=&#39;submit&#39; value=&#39;submit&#39;>
		</form>
	</body>
</html>


Seul le La chaîne remplie se trouve dans les données du type de résultat et la valeur d'index est le nom du formulaire, mais les données du fichier n'existent pas (elles sont stockées dans le fichier temporaire du système et sa durée d'existence est le cycle de script).

Dans php.ini, vous pouvez configurer le répertoire temporaire des fichiers téléchargés (fermé par défaut). S'il n'est pas modifié manuellement, le répertoire de fichiers temporaires par défaut du fichier. le système de serveur est utilisé.

Traitement des données

stocke principalement les fichiers téléchargés (les fichiers temporaires sont automatiquement supprimés après la fin du script).

Utiliser la fonction : move_uploaded_file (adresse de stockage temporaire, adresse cible);

                                                                                                                                                                                                                                      move_uploaded_file (adresse de stockage temporaire, adresse cible) ;

                                                                                                              

Le nom dans le tableau bidimensionnel représente le nom du fichier d'origine, type représente le type de fichier (pas le suffixe), tmp_name représente l'adresse de stockage temporaire, error représente s'il y a une erreur et le type d'erreur, et size représente la taille du fichier téléchargé.

Fonction : strrchr (chaîne, caractère) ; Obtenez la position de la dernière occurrence d'un caractère et affichez ce caractère et tous les caractères suivants.

strchr(string, caractère); Obtenez la position où le caractère apparaît pour la première fois. . . . . . . . . . . . . . .

Pathinfo (variable); Obtenez l'adresse, le type et le nom de la variable. . .

          uniqID(); nommez le fichier téléchargé (pour éviter la duplication). uniqID (« li_ ») signifie ajouter le préfixe li_ avant une chaîne générée.

Recommandations associées :

Comment traiter les fichiers de téléchargement de formulaire en php

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn