En el sitio web de PHP, la única comprobación real que sugieren es usar is_uploaded_file()
o move_uploaded_file()
, here. Por supuesto, generalmente no desea que el usuario cargue ningún tipo de archivo por una variedad de razones.¿Cómo verificar los tipos de archivos cargados en PHP?
Debido a esto, a menudo he utilizado alguna comprobación de tipo MIME "estricta". Por supuesto, esto es muy defectuoso porque a menudo los tipos de mime son incorrectos y los usuarios no pueden subir su archivo. También es muy fácil de falsificar y/o cambiar. Y junto con todo eso, cada navegador y sistema operativo los trata de manera diferente.
Otro método es verificar la extensión, que por supuesto es incluso más fácil de cambiar que el tipo de mimo.
Si solo quiere imágenes, usar algo como getimagesize()
funcionará.
¿Qué pasa con otros tipos de archivos? PDF, documentos de Word o archivos de Excel? ¿O incluso solo archivos de texto?
Editar: Si usted no tiene mime_content_type o Fileinfo y el sistema ("presentar -bi $ UploadedFile") le da el tipo de archivo incorrecto, ¿qué otras opciones hay?
el 'getimagesize()' función establece claramente que se no debería usar esta función para validar si una imagen es una imagen. 'No use getimagesize() para verificar que un archivo determinado sea una imagen válida. Utilice una solución especialmente diseñada, como la extensión Fileinfo en su lugar. Http://php.net/manual/en/function.getimagesize.php –