Foros del Web » Programando para Internet » PHP »

Verificar tipo de Archivo

Estas en el tema de Verificar tipo de Archivo en el foro de PHP en Foros del Web. Hola amigoos, tengo un sistema para subir imagenes, al parecer la sintaxis no deja subir sino es archivo tipo imagen jpg, png o gif, pero ...
  #1 (permalink)  
Antiguo 27/08/2020, 13:31
 
Fecha de Ingreso: octubre-2008
Ubicación: Colombia
Mensajes: 448
Antigüedad: 15 años, 6 meses
Puntos: 2
Verificar tipo de Archivo

Hola amigoos, tengo un sistema para subir imagenes, al parecer la sintaxis no deja subir sino es archivo tipo imagen jpg, png o gif, pero en la practica no es asi, veo que me estan subiendo archivos en pdf, y no quiero que suban este tipo de archivos. Ayudemne que debo agregar para limitar esto?

Código PHP:
<?php
include("logica/conexion.php");

$target_dir "./img_certific/";
$target_file $target_dir date('Ymd-His') . '_' basename($_FILES["comprobante"]["name"]);
$uploadOk 1;
$imageFileType pathinfo($target_file,PATHINFO_EXTENSION);
// Check if image file is a actual image or fake image
if(isset($_POST["submit"])) {
    
$check getimagesize($_FILES["comprobante"]["tmp_name"]);
    if(
$check !== false) {
        
//echo "File is an image - " . $check["mime"] . ".";
        
$uploadOk 1;
    } else {
        
//echo "File is not an image.";
        
$uploadOk 0;
    }
}



if(
$imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
    
//echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
    
$uploadOk 0;
}

// Check file size


 
if (move_uploaded_file($_FILES["comprobante"]["tmp_name"], $target_file)) {
        
//echo "El archivo ". basename( $_FILES["foto_1"]["name"]). " ha sido cargado.";
    
} else {
        
//echo "Sorry, there was an error uploading your file.";
    
}

$sql="insert into table_certificados values 
(null,'"
.$_POST["nombres"]."','".$_POST["email"]."','".$_POST["grado"]."','".$_POST["ano_curso"]."','".$_POST["grado2"]."','".$_POST["ano_curso2"]."','".$_POST["grado3"]."','".$_POST["ano_curso3"]."','".$_POST["grado4"]."','".$_POST["ano_curso4"]."','".$_POST["grado5"]."','".$_POST["ano_curso5"]."','".$_POST["grado6"]."','".$_POST["ano_curso6"]."','".$target_file."','".$_POST["mensaje"]."','".$_POST["estado"]."',now())
"
;

$res mysqli_query($conectar$sql);
//$res=mysqli_query($sql,$conexion);

echo "<script type=''>
    
    window.location='confirmar_envio.php';
</script>"
;

?>
__________________
Desarrollo de Aplicaciones de Escritorio, Sitios Web, Audio y Video en SISGUS
  #2 (permalink)  
Antiguo 27/08/2020, 13:42
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Verificar tipo de Archivo

Primero tienes que verificar que valor recoge la variable $imageFileType; puede que el formato en el que se presente sea distinto a los que colocas en las condiciones. Y, luego de eso, tienes que colocar una condición para evitar que, si el tipo de archivo no coincide con el de las condiciones, las siguientes operaciones no se lleven a cabo. De hecho, creo que solo te hace falta lo segundo.

__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 27/08/2020, 14:32
 
Fecha de Ingreso: octubre-2008
Ubicación: Colombia
Mensajes: 448
Antigüedad: 15 años, 6 meses
Puntos: 2
Respuesta: Verificar tipo de Archivo

Y como puedo lograr esto que dices, Te soy sincero, este código lo he ido armando por sugerencias, voy probando y probando, por eso quisiera que si es posible explicarme un poco mas como lo hago y donde?
__________________
Desarrollo de Aplicaciones de Escritorio, Sitios Web, Audio y Video en SISGUS
  #4 (permalink)  
Antiguo 27/08/2020, 22:39
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Verificar tipo de Archivo

Añade una condición antes de guardar el archivo, de tal forma que, si no se cumple, no se realiza el guardado y, en su lugar, se muestra un mensaje de aviso al usuario. ¿Cuál sería esa condición?: Que el tipo de archivo sea uno de los permitidos.

__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #5 (permalink)  
Antiguo 27/08/2020, 22:46
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Verificar tipo de Archivo

Estás usando la variable $uploadOk para marcar archivos inválidos, pero luego subes el archivo sin considerar el valor que tiene.

Debajo del comentario // Check file size coloca esto:

Código PHP:
Ver original
  1. if($uploadOk == 0) {
  2.     die('El archivo no es una imagen válida o tiene una extensión no permitida.');
  3. }
__________________
- León, Guanajuato
- GV-Foto

Etiquetas: post, tipo, verificar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:10.