Maison > base de données > tutoriel mysql > le corps du texte

Comment restreindre les types et la taille des fichiers dans les téléchargements de fichiers PHP ?

Susan Sarandon
Libérer: 2024-11-01 04:58:02
original
696 Les gens l'ont consulté

How to Restrict File Types and Size in PHP File Uploads?

Téléchargement de fichiers PHP : restreindre efficacement les types et la taille des fichiers

En PHP, contrôler les téléchargements de fichiers et garantir l'acceptation de types de fichiers spécifiques est crucial . Un utilisateur a récemment rencontré des problèmes avec son code de validation existant :

<code class="php">//check file extension and size
$resume= ($_FILES['resume']['name']);
$reference= ($_FILES['reference']['name']);
$ext = strrchr($resume, ".");
$ext1 = strrchr($reference, ".");
if (!(($_FILES["resume"]["type"] == "application/doc")
|| ($_FILES["resume"]["type"] == "application/docx")
|| ($_FILES["resume"]["type"] == "application/pdf" ))
&& (($_FILES["reference"]["type"] == "application/doc")
|| ($_FILES["reference"]["type"] == "application/docx")
|| ($_FILES["reference"]["type"] == "application/pdf"))
&& (($ext == ".pdf") || ($ext == ".doc") || ($ext == ".docx"))
&& (($ext1 == ".pdf") || ($ext1 == ".doc") || ($ext1 == ".docx"))
&&  ($_FILES["resume"]["size"] < 400000) //accept upto 500 kb
&&  ($_FILES["reference"]["size"] < 400000)) {

//stop user
} else {
// allow files to upload
}</code>
Copier après la connexion

Selon l'utilisateur, ce code permettait le passage de types de fichiers non autorisés (par exemple, TXT) et n'appliquait pas la limite de taille.

Solution : s'appuyer sur des types MIME et des contrôles de taille appropriée

Pour résoudre ces problèmes, une approche plus robuste est recommandée :

<code class="php">function allowed_file(){

//Allowed mime-type files
$allowed = array('application/doc', 'application/pdf', 'another/type');

//Validate uploaded file type
if(in_array($_FILES['resume']['type'], $allowed) AND in_array($_FILES['reference']['type'], $allowed)){

//Check file size
if($_FILES["resume"]["size"] < 400000 AND $_FILES["reference"]["size"] < 400000 ){

//File types and size are accepted, proceed with file processing
}
}
}</code>
Copier après la connexion

Explication :

Ce code amélioré utilise les types MIME (MultiPurpose Internet Mail Extension) plutôt que les extensions de fichiers. Les types MIME représentent avec précision les formats de fichiers et sont moins sujets à manipulation. De plus, il vérifie indépendamment la taille du fichier pour les fichiers de CV et de référence, garantissant ainsi que la limite est appliquée.

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!

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
Derniers articles par auteur
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!