Maison  >  Article  >  développement back-end  >  Soumettre des fichiers en PHP

Soumettre des fichiers en PHP

WBOY
WBOYoriginal
2023-05-24 08:51:221068parcourir

PHP est un langage de script côté serveur qui peut être utilisé pour traiter les données de formulaire, générer des pages dynamiques, etc. Un scénario d'application courant consiste à télécharger des fichiers via des formulaires. Cet article présentera la fonction de téléchargement de fichiers en PHP, y compris le traitement des formulaires de téléchargement, le stockage des fichiers téléchargés, la limitation du type et de la taille des fichiers téléchargés, etc.

1. Traitement des formulaires de téléchargement

En HTML, vous pouvez créer un formulaire via la balise form et utiliser l'attribut type="file" dans la balise input pour autoriser le téléchargement de fichiers. En PHP, vous pouvez utiliser la variable globale $_FILES pour obtenir des informations sur le fichier téléchargé.

Supposons que notre formulaire contienne une balise d'entrée pour télécharger un fichier et un bouton d'envoi :

2c9ccec1c7569b190d7f2fbc9a3811c4
e1afba264bef770f92ac9a2c4a571c26
6caecc565d8b7cee6b45edb6d3f8121d
f5a47148e367a6035fd7a2faa965022e

Vous devez faites attention ici à plusieurs endroits : L'attribut

  1. action spécifie l'adresse de soumission du formulaire, c'est-à-dire le script de traitement pour le téléchargement des fichiers. Ici, nous utilisons le fichier upload.php.
  2. L'attribut méthode spécifie la méthode de soumission du formulaire, ici la méthode post est utilisée.
  3. L'attribut enctype spécifie la méthode d'encodage des données du formulaire. Nous devons utiliser multipart/form-data pour permettre le téléchargement de fichiers.

Ensuite, gérez la demande de téléchargement de fichier dans le fichier upload.php.

2. Stockage des fichiers téléchargés

Tout d'abord, vous devez déterminer si le fichier téléchargé existe. S'il existe, vous pouvez obtenir les informations pertinentes sur le fichier téléchargé via le tableau $_FILES :

if(isset($_FILES). ["fileToUpload"])) {

$file_name = $_FILES["fileToUpload"]["name"];
$file_tmp = $_FILES["fileToUpload"]["tmp_name"];
$file_size = $_FILES["fileToUpload"]["size"];

}

Parmi eux, le nom du fichier peut être obtenu via l'attribut $name, la taille du fichier peut être obtenue via l'attribut $size et le chemin du fichier temporaire peut être obtenu via l'attribut $tmp_name.

Ensuite, vous devez déplacer le fichier téléchargé vers le dossier cible. Utilisez la fonction move_uploaded_file() ici :

$target_dir = "uploads/";
$target_file = $target_dir . move_uploaded_file ($file_tmp, $target_file)) {

echo "The file ". basename($file_name). " has been uploaded.";

} else{

echo "Sorry, there was an error uploading your file.";

}

Dans le code ci-dessus, $target_dir est le répertoire de stockage du fichier téléchargé, où la fonction basename() est utilisée pour obtenir le fichier nom. Le déplacement de fichiers utilise la fonction move_uploaded_file(), où le premier paramètre est le chemin temporaire du fichier et le deuxième paramètre est le chemin cible. Si le fichier est déplacé avec succès, un message de téléchargement réussi est renvoyé à l'utilisateur ; sinon, un message d'échec de téléchargement est renvoyé.

3. Limiter le type et la taille des fichiers téléchargés

Afin de garantir la sécurité et les performances du système de téléchargement, nous devons limiter les fichiers téléchargés. Cela inclut à la fois le type et la taille du fichier.

    Restrictions de type de fichier
Nous utilisons la fonction in_array() de PHP pour déterminer si le type de fichier téléchargé est légal. Plus précisément, vous devez définir un tableau de types de fichiers dont le téléchargement est autorisé, puis utiliser la fonction in_array() pour déterminer si le type de fichier téléchargé se trouve dans le tableau de types de fichiers dont le téléchargement est autorisé.

$allowed_types = array('jpg', 'jpeg', 'png', 'gif');

$file_type = strtolower(pathinfo($file_name,PATHINFO_EXTENSION));
if(in_array($file_type, $allowed_types) ){

// 合法文件类型

} else{

echo "Sorry, only JPG, JPEG, PNG, GIF files are allowed.";

}

Dans le code ci-dessus, la fonction pathinfo() est utilisée pour obtenir le nom du suffixe du fichier, la fonction strtolower() le convertit en caractères minuscules et la fonction in_array() est utilisé pour déterminer s'il fait partie du tableau des types de fichiers autorisés à être téléchargés.

    Limite de taille de fichier
Nous utilisons la configuration de téléchargement de fichiers de PHP pour limiter la taille des fichiers téléchargés, qui peut être définie dans le fichier php.ini, par exemple :

post_max_size=8M

upload_max_filesize=2M

ici post_max_size signifie La longueur maximale des données POST, upload_max_filesize indique la taille maximale des fichiers téléchargés. Il convient de noter que si la taille du fichier n'atteint pas la limite, le tableau $_FILES ne contiendra pas d'informations sur le fichier téléchargé.

Résumé :

L'implémentation de la fonction de téléchargement de fichiers en PHP nécessite les étapes suivantes :

    Créez un formulaire contenant la balise d'entrée du fichier de téléchargement et le bouton de soumission.
  1. Dans le script de traitement du fichier téléchargé, utilisez la variable globale $_FILES pour obtenir les informations sur le fichier téléchargé.
  2. Déplacez les fichiers téléchargés vers le dossier de destination.
  3. Appliquez des restrictions de sécurité et de performances sur les fichiers téléchargés, y compris le type et la taille du fichier.
La mise en œuvre de la fonction de téléchargement de fichiers via la méthode ci-dessus peut fournir à nos applications Web des fonctions plus riches et une meilleure expérience utilisateur.

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