Téléchargement de fichiers PHP : garantir les restrictions de type et de taille de fichier
En PHP, la gestion des téléchargements de fichiers nécessite souvent de vérifier les restrictions de type et de taille de fichier. L'extrait de code tente de valider les deux critères, mais rencontre des problèmes. Examinons le code et identifions les erreurs.
//check file extension and size
$resume = ($_FILES['resume']['name']);
$reference = ($_FILES['reference']['name']);
$ext = strrchr($resume, ".");
$ext1 = strrchr($reference, ".");
Ce code capture le nom de fichier et l'extension des deux fichiers. Cependant, la logique de validation ultérieure est erronée :
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"] Le code ne parvient pas à utiliser la logique correcte pour valider les types de fichiers. Au lieu de vérifier le type MIME, il s'appuie sur l'extension du nom de fichier, qui n'est pas fiable. De plus, la validation de la taille n'est pas appliquée aux deux fichiers.
Pour corriger ces problèmes, voici un extrait de code révisé qui utilise les types MIME et vérifie correctement les deux tailles de fichiers :
function allowed_file() {
$allowed = array('application/doc', 'application/pdf', 'application/docx');
if (in_array($_FILES['resume']['type'], $allowed) && in_array($_FILES['reference']['type'], $allowed)) {
if ($_FILES["resume"]["size"] Ce code vérifie d'abord si les types MIME des fichiers sont inclus dans la liste autorisée. Si tel est le cas, il vérifie ensuite si les deux tailles de fichiers se situent dans la limite spécifiée. Cela garantit que seuls les types et tailles de fichiers autorisés sont acceptés pour le téléchargement.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3