Maison développement back-end tutoriel php Technologie de téléchargement et de téléchargement de fichiers en PHP

Technologie de téléchargement et de téléchargement de fichiers en PHP

May 10, 2023 pm 10:31 PM
文件上传 文件下载 php语言编程

PHP est un langage de programmation largement utilisé dans le développement Web. Il se caractérise par sa simplicité, sa facilité d'apprentissage, sa forte évolutivité et son cycle de développement court, il est donc largement apprécié des développeurs. Dans le développement Web, le téléchargement de fichiers est une exigence courante, et PHP fournit des fonctions et des classes intégrées pour nous aider à implémenter ces fonctions facilement. Cet article présentera la technologie de téléchargement et de téléchargement de fichiers en PHP.

1. Technologie de téléchargement de fichiers

  1. Formulaire HTML

En HTML, on peut utiliser le type de balise d'entrée Créez un élément de formulaire de téléchargement de fichier avec l'attribut "file", comme indiqué ci-dessous :

<form action="upload.php" method="post" enctype="multipart/form-data">
  <input type="file" name="fileToUpload" id="fileToUpload">
  <input type="submit" value="上传文件" name="submit">
</form>
Copier après la connexion

Il convient de noter que le formulaire doit être soumis à l'aide de la méthode POST et que l'attribut enctype doit être défini. à "multipart/form-data", afin que le formulaire puisse prendre en charge le téléchargement de fichiers. En même temps, nous devons créer un élément d'entrée avec un attribut de nom "fileToUpload". Cette valeur d'attribut sera utilisée dans le code PHP suivant pour obtenir le fichier téléchargé.

  1. Traitement PHP

Une fois que l'utilisateur a soumis le formulaire pour télécharger le fichier, nous devons le traiter en arrière-plan. En PHP, nous pouvons utiliser le tableau super global $_FILES pour obtenir les fichiers téléchargés.

<?php
$target_dir = "./uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));

// 检查文件是否是图片
if(isset($_POST["submit"])) {
  $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
  if($check !== false) {
    echo "File is an image - " . $check["mime"] . ".";
    $uploadOk = 1;
  } else {
    echo "File is not an image.";
    $uploadOk = 0;
  }
}

// 检查文件是否已经存在
if (file_exists($target_file)) {
  echo "Sorry, file already exists.";
  $uploadOk = 0;
}

// 检查文件大小
if ($_FILES["fileToUpload"]["size"] > 500000) {
  echo "Sorry, your file is too large.";
  $uploadOk = 0;
}

// 允许上传的文件类型
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
    echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
    $uploadOk = 0;
}

// 如果所有检查都通过,上传文件
if ($uploadOk == 0) {
  echo "Sorry, your file was not uploaded.";
} else {
  if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
    echo "The file ". htmlspecialchars( basename( $_FILES["fileToUpload"]["name"])). " has been uploaded.";
  } else {
    echo "Sorry, there was an error uploading your file.";
  }
}
?>
Copier après la connexion

Dans le code ci-dessus, nous définissons d'abord un répertoire $target_dir pour stocker les fichiers téléchargés, puis générons un chemin de fichier cible $target_file basé sur le nom de fichier téléchargé par l'utilisateur et $target_dir. Ensuite, nous avons effectué une série de vérifications sur le fichier téléchargé, telles que :

  • Vérifier si le fichier est un fichier image
  • Vérifier si le fichier existe déjà #🎜🎜 #
  • Vérifiez si la taille du fichier est trop grande
  • Vérifiez si le type de fichier téléchargé est autorisé
Enfin, si toutes les vérifications réussissent , nous utilisons La fonction move_uploaded_file déplace le fichier téléchargé du répertoire tmp vers l'emplacement spécifié par $target_file.

2. Technologie de téléchargement de fichiers

Le téléchargement de fichiers est généralement divisé en deux manières. La première consiste à télécharger des fichiers statiques (tels que des images, des fichiers texte, des fichiers audio et vidéo, etc.). .), dont une méthode est relativement simple ; l’autre consiste à télécharger des fichiers générés dynamiquement, ce qui est relativement plus gênant.

    Télécharger des fichiers statiques
En PHP, on peut télécharger des fichiers via la fonction header(), par exemple : #🎜🎜 #
$file = "./downloads/test.txt";

// 设置HTTP头信息以告诉浏览器下载文件
header("Content-disposition: attachment;filename=".basename($file));
header("Content-type: application/octet-stream");
header("Content-Length: ".filesize($file));
header("Pragma: no-cache");
header("Expires: 0");

// 将文件内容读取并输出给浏览器
readfile($file);
Copier après la connexion
# 🎜🎜#Dans le code ci-dessus, nous spécifions d'abord un fichier $file et utilisons la fonction header() pour définir les informations d'en-tête HTTP. Parmi eux, Content-disposition spécifie le nom du fichier téléchargé, Content-type spécifie le type de fichier, Content-Length spécifie la taille du fichier et Pragma et Expires sont utilisés pour empêcher le navigateur de mettre en cache le fichier téléchargé.

Enfin, nous utilisons la fonction readfile() pour lire le contenu du fichier spécifié et le sortir vers le navigateur client, réalisant ainsi la fonction de téléchargement de fichier.

Télécharger les fichiers générés dynamiquement

  1. Pour les fichiers générés dynamiquement, nous devons d'abord les enregistrer sur le serveur, puis les utiliser comme fichiers statiques méthode de téléchargement.
  2. $content = "Hello, world!";
    $filename = "test.txt";
    $file = "./downloads/".$filename;
    
    // 将内容写入到文件中
    $handle = fopen($file, "w");
    fwrite($handle, $content);
    fclose($handle);
    
    // 返回下载文件给客户端
    header("Content-disposition: attachment;filename=".$filename);
    header("Content-type: application/octet-stream");
    header("Content-Length: ".filesize($file));
    header("Pragma: no-cache");
    header("Expires: 0");
    readfile($file);
    
    // 下载完成后删除服务器端的文件
    unlink($file);
    Copier après la connexion
    Dans le code ci-dessus, nous enregistrons d'abord le fichier $content généré dynamiquement dans un fichier $filename côté serveur, puis définissons les informations d'en-tête HTTP via la fonction header() pour permettre au client Le navigateur télécharge le fichier. Enfin, nous utilisons la fonction unlink() pour supprimer le fichier côté serveur afin d'éviter que le fichier n'occupe les ressources côté serveur.

    Résumé

    Cet article présente la technologie d'upload et de téléchargement de fichiers en PHP. Ces fonctions sont très pratiques pour développer des applications Web. Lorsque vous utilisez PHP pour télécharger et télécharger des fichiers, vous devez faire attention à certains problèmes de sécurité, tels que la vérification du type, de la taille, du nom du fichier, etc., afin d'éviter les attaques d'utilisateurs malveillants. Dans le même temps, nous devons également faire de notre mieux pour optimiser les performances de téléchargement et de téléchargement de fichiers, réduire le gaspillage de ressources sur le serveur et le client et améliorer l'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 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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Opération d'ouverture Python après avoir téléchargé le fichier Opération d'ouverture Python après avoir téléchargé le fichier Apr 03, 2024 pm 03:39 PM

Python fournit les options suivantes pour ouvrir les fichiers téléchargés : Fonction open() : ouvre le fichier en utilisant le chemin et le mode spécifiés (tels que « r », « w », « a »). Bibliothèque de requêtes : utilisez sa méthode download() pour attribuer automatiquement un nom et ouvrir directement le fichier. Bibliothèque Pathlib : utilisez les méthodes write_bytes() et read_text() pour écrire et lire le contenu du fichier.

Implémenter le téléchargement et le téléchargement de fichiers dans les documents Workerman Implémenter le téléchargement et le téléchargement de fichiers dans les documents Workerman Nov 08, 2023 pm 06:02 PM

Pour implémenter le téléchargement et le téléchargement de fichiers dans des documents Workerman, des exemples de code spécifiques sont requis Introduction : Workerman est un framework de communication réseau asynchrone PHP hautes performances, simple, efficace et facile à utiliser. Dans le développement réel, le téléchargement et le téléchargement de fichiers sont des exigences fonctionnelles courantes. Cet article explique comment utiliser le framework Workerman pour implémenter le téléchargement et le téléchargement de fichiers, et donne des exemples de code spécifiques. 1. Téléchargement de fichiers : le téléchargement de fichiers fait référence à l'opération de transfert de fichiers de l'ordinateur local vers le serveur. Ce qui suit est utilisé

Comment utiliser les fonctions PHP pour télécharger et télécharger des pièces jointes pour envoyer et recevoir des e-mails ? Comment utiliser les fonctions PHP pour télécharger et télécharger des pièces jointes pour envoyer et recevoir des e-mails ? Jul 25, 2023 pm 08:17 PM

Comment utiliser les fonctions PHP pour télécharger et télécharger des pièces jointes pour envoyer et recevoir des e-mails ? Avec le développement rapide des technologies de communication modernes, le courrier électronique est devenu un moyen important pour communiquer et transmettre des informations dans la vie quotidienne. Dans le développement Web, nous rencontrons souvent le besoin d’envoyer et de recevoir des e-mails avec des pièces jointes. En tant que puissant langage de script côté serveur, PHP fournit une multitude de fonctions et de bibliothèques de classes qui peuvent simplifier le processus de traitement des e-mails. Cet article explique comment utiliser les fonctions PHP pour télécharger et télécharger des pièces jointes pour l'envoi et la réception d'e-mails. L'e-mail est envoyé en premier, nous

Comment utiliser Laravel pour implémenter les fonctions de téléchargement et de téléchargement de fichiers Comment utiliser Laravel pour implémenter les fonctions de téléchargement et de téléchargement de fichiers Nov 02, 2023 pm 04:36 PM

Comment utiliser Laravel pour implémenter les fonctions de téléchargement et de téléchargement de fichiers Laravel est un framework Web PHP populaire qui fournit une multitude de fonctions et d'outils pour rendre le développement d'applications Web plus facile et plus efficace. L'une des fonctions couramment utilisées est le téléchargement et le téléchargement de fichiers. Cet article expliquera comment utiliser Laravel pour implémenter les fonctions de téléchargement et de téléchargement de fichiers, et fournira des exemples de code spécifiques. Téléchargement de fichiers Le téléchargement de fichiers fait référence au téléchargement de fichiers locaux sur le serveur pour le stockage. Dans Laravel, nous pouvons utiliser le téléchargement de fichiers

Comment résoudre l'exception de téléchargement de fichiers Java (FileUploadException) Comment résoudre l'exception de téléchargement de fichiers Java (FileUploadException) Aug 18, 2023 pm 12:11 PM

Comment résoudre l'exception de téléchargement de fichiers Java (FileUploadException). Un problème souvent rencontré dans le développement Web est FileUploadException (exception de téléchargement de fichiers). Cela peut se produire pour diverses raisons telles qu'une taille de fichier dépassant la limite, une incompatibilité de format de fichier ou une configuration incorrecte du serveur. Cet article décrit quelques méthodes pour résoudre ces problèmes et fournit des exemples de code correspondants. Limiter la taille des fichiers téléchargés Dans la plupart des scénarios, limitez la taille du fichier

Comment utiliser gRPC pour implémenter le téléchargement de fichiers dans Golang ? Comment utiliser gRPC pour implémenter le téléchargement de fichiers dans Golang ? Jun 03, 2024 pm 04:54 PM

Comment implémenter le téléchargement de fichiers à l'aide de gRPC ? Créez des définitions de service de support, y compris des messages de demande et de réponse. Sur le client, le fichier à télécharger est ouvert et divisé en morceaux, puis diffusé sur le serveur via un flux gRPC. Côté serveur, des fragments de fichiers sont reçus et stockés dans un fichier. Le serveur envoie une réponse une fois le téléchargement du fichier terminé pour indiquer si le téléchargement a réussi.

Comment déclencher le téléchargement du fichier en cliquant sur le bouton HTML ou JavaScript ? Comment déclencher le téléchargement du fichier en cliquant sur le bouton HTML ou JavaScript ? Sep 12, 2023 pm 12:49 PM

De nos jours, de nombreuses applications permettent aux utilisateurs de télécharger et de télécharger des fichiers. Par exemple, les outils de détection de plagiat permettent aux utilisateurs de télécharger un fichier de document contenant du texte. Il vérifie ensuite le plagiat et génère un rapport que les utilisateurs peuvent télécharger. Tout le monde sait comment utiliser inputtypefile pour créer un bouton de téléchargement de fichier, mais peu de développeurs savent utiliser JavaScript/JQuery pour créer un bouton de téléchargement de fichier. Ce didacticiel vous apprendra différentes manières de déclencher le téléchargement d'un fichier lorsque vous cliquez sur un bouton HTML ou JavaScript. Utilisez la balise <a> et l'attribut de téléchargement du HTML pour déclencher le téléchargement du fichier lorsque vous cliquez sur le bouton. Chaque fois que nous donnons la balise <a>.

Téléchargement et traitement de fichiers dans Laravel : gestion des fichiers téléchargés par les utilisateurs Téléchargement et traitement de fichiers dans Laravel : gestion des fichiers téléchargés par les utilisateurs Aug 13, 2023 pm 06:45 PM

Téléchargement et traitement de fichiers dans Laravel : gestion des fichiers téléchargés par les utilisateurs Introduction : Le téléchargement de fichiers est une exigence fonctionnelle très courante dans les applications Web modernes. Dans le framework Laravel, le téléchargement et le traitement de fichiers deviennent très simples et efficaces. Cet article explique comment gérer les fichiers téléchargés par les utilisateurs dans Laravel, y compris la vérification, le stockage, le traitement et l'affichage des téléchargements de fichiers. 1. Téléchargement de fichiers Le téléchargement de fichiers fait référence au téléchargement de fichiers du client vers le serveur. Dans Laravel, les téléchargements de fichiers sont très simples à gérer. d'abord,

See all articles