Comment implémenter le téléchargement et le téléchargement de fichiers dans le développement de fonctions back-end PHP ?

WBOY
Libérer: 2023-08-05 19:26:02
original
845 Les gens l'ont consulté

Comment implémenter le téléchargement et le téléchargement de fichiers dans le développement de fonctions back-end PHP ?

Dans le développement Web, le téléchargement et le téléchargement de fichiers sont des fonctions très courantes. Que les utilisateurs téléchargent des images, des documents ou téléchargent des fichiers, un code back-end est requis pour les traiter. Cet article expliquera comment implémenter les fonctions de téléchargement et de téléchargement de fichiers sur le backend PHP et joindra des exemples de code spécifiques.

1. Téléchargement de fichiers

Le téléchargement de fichiers fait référence au transfert de fichiers de l'ordinateur local vers le serveur. PHP fournit une multitude de fonctions et de classes pour implémenter les fonctions de téléchargement de fichiers.

  1. Créer un formulaire HTML

Tout d'abord, créez un formulaire en HTML pour que l'utilisateur puisse sélectionner un fichier à télécharger. Vous pouvez créer un bouton de sélection de fichier en utilisant l'attribut type de l'élément d'entrée en tant que fichier.

<form action="upload.php" method="post" enctype="multipart/form-data">
  <input type="file" name="file">
  <input type="submit" value="上传">
</form>
Copier après la connexion
  1. Créez le fichier upload.php

Ensuite, nous devons créer un fichier PHP pour gérer la demande de téléchargement. Dans le fichier upload.php, nous pouvons utiliser la variable superglobale $_FILES pour obtenir des informations sur le fichier téléchargé.

<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
  $file = $_FILES['file'];

  // 获取文件名
  $filename = $file['name'];
  
  // 获取文件临时路径
  $tmp_path = $file['tmp_name'];

  // 指定文件保存的路径
  $save_path = 'uploads/' . $filename;

  // 将文件从临时路径移动到指定路径
  move_uploaded_file($tmp_path, $save_path);

  echo '文件上传成功!';
}
?>
Copier après la connexion

Dans le fichier upload.php, nous obtenons d'abord les informations sur le fichier téléchargé via $_FILES['file']. Nous pouvons ensuite utiliser la fonction move_uploaded_file pour déplacer le fichier du chemin temporaire vers le chemin spécifié. Enfin, nous pouvons donner à l'utilisateur un retour lui indiquant que le téléchargement du fichier a réussi.

  1. Créer un répertoire de sauvegarde de fichiers

Dans l'exemple de code ci-dessus, nous avons enregistré les fichiers téléchargés dans un dossier nommé "uploads". Avant de créer le fichier upload.php, nous devons nous assurer que le dossier existe déjà, sinon le fichier ne pourra pas être enregistré.

<?php
if (!file_exists('uploads')) {
  mkdir('uploads', 0777, true);
}
?>
Copier après la connexion

Le code ci-dessus peut être utilisé pour vérifier si le dossier nommé "uploads" existe. S'il n'existe pas, vous pouvez utiliser la fonction mkdir pour créer le dossier.

2. Téléchargement de fichiers

Le téléchargement de fichiers fait référence au téléchargement de fichiers sur le serveur vers l'ordinateur local. PHP implémente le téléchargement de fichiers via la fonction d'en-tête.

  1. Créez le fichier download.php

Dans le fichier download.php, nous devons obtenir le chemin du fichier à télécharger et définir les informations d'en-tête de téléchargement correspondantes via la fonction d'en-tête.

<?php
$file_path = 'files/document.pdf';

if (file_exists($file_path)) {
  header('Content-Description: File Transfer');
  header('Content-Type: application/octet-stream');
  header('Content-Disposition: attachment; filename=' . basename($file_path));
  header('Content-Length: ' . filesize($file_path));
  header('Pragma: public');
  header('Expires: 0');
  readfile($file_path);
  exit;
} else {
  die('文件不存在!');
}
?>
Copier après la connexion

Dans l'exemple de code ci-dessus, nous définissons les informations d'en-tête Content-Disposition en pièce jointe via la fonction d'en-tête et définissons le nom du fichier à télécharger. Ensuite, nous utilisons la fonction readfile pour lire le contenu du fichier et le transmettre à l'utilisateur.

  1. Créer des fichiers téléchargeables

Dans le fichier download.php, nous spécifions un fichier nommé "files/document.pdf" que les utilisateurs doivent télécharger. Avant de créer le fichier download.php, nous devons nous assurer que le fichier existe déjà, sinon le fichier ne pourra pas être téléchargé.

3. Résumé

Grâce à l'introduction de cet article, nous avons appris comment implémenter les fonctions de téléchargement et de téléchargement de fichiers sur le backend PHP. Le téléchargement de fichier nécessite l'obtention des informations sur le fichier téléchargé via la variable superglobale $_FILES et l'utilisation de la fonction move_uploaded_file pour déplacer le fichier du chemin temporaire vers le chemin spécifié. Lors du téléchargement d'un fichier, vous pouvez définir les informations d'en-tête de téléchargement correspondantes via la fonction d'en-tête et utiliser la fonction readfile pour transmettre le contenu du fichier à l'utilisateur. Les exemples de code ci-dessus peuvent être utilisés comme référence et les développeurs peuvent apporter des modifications et des améliorations personnalisées en fonction des besoins réels. J'espère que cet article vous sera utile !

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!