Table des matières
Set up the HTML form
Access the uploaded file in PHP
Validate and move the file
Security best practices
Maison développement back-end tutoriel php Comment gérer les téléchargements de fichiers dans PHP?

Comment gérer les téléchargements de fichiers dans PHP?

Sep 09, 2025 am 06:18 AM
php Téléchargement de fichiers

First, set up an HTML form with enctype="multipart/form-data" and method="post", then access the file via $_FILES in PHP, validate its type, size, and error status, move it securely using move_uploaded_file(), and follow security practices like storing outside web root and using random filenames.

How to handle file uploads in PHP?

Handling file uploads in PHP involves processing files sent from an HTML form, validating them, and securely storing them on the server. Here’s how to do it properly and safely.

Set up the HTML form

To allow file uploads, your HTML form must include the enctype="multipart/form-data" attribute and use the POST method.

Example:


  
  

Access the uploaded file in PHP

When a file is uploaded, PHP stores it temporarily and provides access via the $_FILES superglobal array. This array contains key details like name, type, size, tmp_name, and error.

In your upload.php file:

$fileName = $_FILES['uploaded_file']['name'];
$fileTmpName = $_FILES['uploaded_file']['tmp_name'];
$fileSize = $_FILES['uploaded_file']['size'];
$fileType = $_FILES['uploaded_file']['type'];
$fileError = $_FILES['uploaded_file']['error'];

Validate and move the file

Never trust user input. Always validate the file before moving it to a permanent location.

  • Check for upload errors using $fileError === UPLOAD_ERR_OK
  • Verify file size (e.g., limit to 2MB)
  • Check allowed file types by extension or MIME type
  • Use move_uploaded_file() to move from temporary to desired directory

Example validation and move:

$uploadDir = 'uploads/';
$allowedTypes = ['image/jpeg', 'image/png', 'image/gif'];
$maxSize = 2 * 1024 * 1024; // 2MB

if ($fileError === UPLOAD_ERR_OK) {
  if (in_array($fileType, $allowedTypes) && $fileSize <= $maxSize) {
    $destination = $uploadDir . basename($fileName);
    if (move_uploaded_file($fileTmpName, $destination)) {
      echo "File uploaded successfully.";
    } else {
      echo "Failed to save file.";
    }
  } else {
    echo "Invalid file type or size too large.";
  }
} else {
  echo "Upload error.";
}

Security best practices

File uploads are a common attack vector. Follow these tips:

  • Store uploaded files outside the web root when possible
  • Use random filenames to prevent overwrites and path traversal
  • Avoid executing uploaded files (e.g., don’t allow .php uploads)
  • Verify file content using functions like getimagesize() for images
  • Set proper permissions on upload directories

Basically, handle file uploads with care—validate everything and never assume the file is safe.

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

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.

Stock Market GPT

Stock Market GPT

Recherche d'investissement basée sur l'IA pour des décisions plus intelligentes

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)

Sujets chauds

Comment implémenter un modèle singleton en PHP? Comment implémenter un modèle singleton en PHP? Sep 25, 2025 am 12:27 AM

Le modèle Singleton garantit qu'une classe n'a qu'une seule instance et fournit un point d'accès global pour les scénarios où un seul objet coordonne le fonctionnement du système, tels que les connexions de base de données ou la gestion de la configuration. 2. Sa structure de base comprend: les instances de stockage d'attribut statiques privées, les constructeurs privés empêchent la création externe, les méthodes de clonage privé empêchent la copie et les méthodes statiques publiques (telles que getInstance ()) pour obtenir des instances. 3. Obtenez une instance unique dans PHP en appelant la méthode GetInstance () et renvoie la même référence d'objet, peu importe le nombre de fois où il est appelé. 4. Selon le modèle de demande PHP standard, la sécurité des threads n'est pas nécessaire pour être prise en compte, mais les problèmes de synchronisation doivent être prêts à prêter attention dans des environnements à long terme ou multi-thread, et PHP lui-même ne prend pas en charge le mécanisme de verrouillage natif. 5. Bien que les singletons soient utiles,

Comment utiliser l'opérateur de fusion nul (??) en PHP? Comment utiliser l'opérateur de fusion nul (??) en PHP? Sep 25, 2025 am 01:28 AM

Réponse: L'opérateur de fusion vide de PHP (??) est utilisé pour vérifier si une variable ou une clé de tableau existe et n'est pas nul. S'il est vrai, il renvoie sa valeur, sinon il renvoie la valeur par défaut. Il évite l'utilisation de longs chèques ISSet (), convient pour gérer les variables et les clés de tableau non définies, telles que $ username = $ userInput ?? 'invité, et prend en charge les appels de chaîne, tels que $ thème = $ usertheme?

Comment obtenir des paramètres URL en PHP? Comment obtenir des paramètres URL en PHP? Sep 24, 2025 am 05:11 AM

Utilisez $ _get pour obtenir des paramètres URL, tels que? Name = John & Age = 25; Vérifiez l'existence via les opérateurs de fusion ISSET ou vide, et filtrez et vérifiez les données avec filter_input pour assurer la sécurité.

Comment désactiver une fonction en PHP? Comment désactiver une fonction en PHP? Sep 24, 2025 am 02:40 AM

TodisableAphpFunction, utilisésable_functionsinphp.IniforBuilt-infunctions likeExecorsystem, qui bloquethemgloballyforsecurity;

Comment télécharger un fichier à partir d'une URL en PHP? Comment télécharger un fichier à partir d'une URL en PHP? Sep 24, 2025 am 05:45 AM

Réponse: Utilisez File_get_Contents et Curl pour télécharger des fichiers d'URL, le premier est simple mais restreint, tandis que le second est plus flexible et prend en charge le streaming. Les exemples incluent la lecture et la rédaction directement des fichiers, les options de paramètre d'initialisation de boucles et la sauvegarde, l'ajout d'une gestion des erreurs et la vérification de l'état HTTP. Les fichiers volumineux sont recommandés pour diffuser le téléchargement en blocs pour enregistrer la mémoire, en veillant à ce que le répertoire soit écrit et gère correctement les exceptions.

Comment implémenter une interface dans une classe PHP? Comment implémenter une interface dans une classe PHP? Sep 25, 2025 am 05:34 AM

Utilisez le mot-clé Implementation pour implémenter l'interface et la classe doit fournir des implémentations spécifiques de toutes les méthodes dans l'interface. 2. Définissez l'interface pour déclarer la méthode à l'aide du mot-clé d'interface. 3. La classe implémente l'interface et remplace les méthodes. 4. Créez un objet et appelez la méthode pour sortir le résultat. 5. Une classe peut implémenter plusieurs interfaces pour assurer la spécification du code et la maintenabilité.

Comment désinfecter la saisie des utilisateurs pour empêcher les XS dans PHP? Comment désinfecter la saisie des utilisateurs pour empêcher les XS dans PHP? Sep 25, 2025 am 05:19 AM

TopreventXssInPhp, SanitizeUserInputAscapeOutputBasedOnContextuSingHtmlSpecialCars () forhtml, json_encode () forjavascrip

Comment utiliser les méthodes Get et Poster sous une forme HTML avec PHP? Comment utiliser les méthodes Get et Poster sous une forme HTML avec PHP? Sep 25, 2025 am 03:46 AM

La méthode GET attache des données à l'URL, qui convient aux informations non sensibles; La méthode Post envoie des données via le corps de la demande, qui est plus sécurisé et adapté aux informations sensibles.

See all articles