PHP - Validar archivos de subida JPG

 
Vista:
Imágen de perfil de Fernando

Validar archivos de subida JPG

Publicado por Fernando (16 intervenciones) el 06/01/2014 02:34:29
Hola, tengo un problema para validar este código (el cual funciona ok) pero no puedo hacer que solo se suban imágenes JPG ya que si subo un archivo con cualquier extensión por ejemplo: juan.TXT, me lo convierte a 0.JPG.
alguna idea de como puedo hacer que si no es un JPG, me tire un echo y me cancele la subida de archivos?
acá les dejo el código, se agredece!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
$archivo = $_FILES['archivo']['tmp_name'];
$cantidad = count($archivo);
//INVENTADO NOMBRE DE CARPETA
$hora = date("H")+8;
$carpeta = $user;
@$nuevodirectorio = "up/$carpeta";
@mkdir ($nuevodirectorio);
$directorio = "$nuevodirectorio/";
 
//INSERTA ITERATIVAMENTE
 
for ($n="0"; $n<$cantidad; $n++) {
$archivo_codigo = $archivo[$n];
$nombre_archivo = $n.".jpg";
$archivo_subir = $directorio . $nombre_archivo;
 
 
 
if (move_uploaded_file($archivo_codigo, $archivo_subir)) {
print("OK.<br/>");
} else {
print("Error de conexion con el servidor.<br/>"); }
}
 
 
?>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Validar archivos de subida JPG

Publicado por Alexis Ochoa (92 intervenciones) el 06/01/2014 11:05:35
Si mal no recuerdo, en el array $_FILES tienes un indice cuyo valor te indica el tipo de archivo que se subió al servidor.

Debe ser algo como esto

1
2
3
4
5
6
if( $_FILES['archivo']['type'] == "image/jpg" ){
echo "imagen valida";
}
else{
echo "imagen invalida";
}


Comprueba a ver si esto te funciona y nos comentas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Fernando

Validar archivos de subida JPG

Publicado por Fernando (16 intervenciones) el 06/01/2014 15:36:30
Hola, lo probé y no me funciona todavía...

Lo puse así, quizá este mal

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php
 
$archivo = $_FILES['archivo']['tmp_name'];
$cantidad = count($archivo);
//INVENTADO NOMBRE DE CARPETA
$hora = date("H")+8;
$carpeta = $user;
@$nuevodirectorio = "up/$carpeta";
@mkdir ($nuevodirectorio);
$directorio = "$nuevodirectorio/";
 
//INSERTA ITERATIVAMENTE
 
for ($n="0"; $n<$cantidad; $n++) {
$archivo_codigo = $archivo[$n];
$nombre_archivo = $n.".jpg";
$archivo_subir = $directorio . $nombre_archivo;
 
if( $_FILES['archivo']['type'] == "image/jpg" ){
echo "imagen valida";
}
else{
echo "imagen invalida";
}
 
if (move_uploaded_file($archivo_codigo, $archivo_subir)) {
print("OK.<br/>");
} else {
print("Error de conexion con el servidor.<br/>"); }
}
 
 
?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Validar archivos de subida JPG

Publicado por xve (6935 intervenciones) el 06/01/2014 17:44:00
Hola Fernando, lo que has hecho, es simplemente que te muestre el mensaje, pero no impides que mueva la imagen...

Pon la instrucción move_uploaded_file() dentro del if... algo así:
1
2
3
4
5
6
7
8
9
if( $_FILES['archivo']['type'] == "image/jpg" ){
    echo "imagen valida";
}else{
    if (move_uploaded_file($archivo_codigo, $archivo_subir)) {
        print("OK.<br/>");
    }else{
        print("Error de conexion con el servidor.<br/>"); }
    }
}

Te sirve asín?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Fernando

Validar archivos de subida JPG

Publicado por Fernando (16 intervenciones) el 06/01/2014 18:01:06
Hola, todavía no lo pude hacer! no diferencia si es JPG la imagen, y me la sigue subiendo....

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
 
 
$archivo = $_FILES['archivo']['tmp_name'];
$cantidad = count($archivo);
//INVENTADO NOMBRE DE CARPETA
$hora = date("H")+8;
$carpeta = $user;
@$nuevodirectorio = "up/$carpeta";
@mkdir ($nuevodirectorio);
$directorio = "$nuevodirectorio/";
 
//INSERTA ITERATIVAMENTE
 
for ($n="0"; $n<$cantidad; $n++) {
$archivo_codigo = $archivo[$n];
$nombre_archivo = $n.".jpg";
$archivo_subir = $directorio . $nombre_archivo;
if( $_FILES['archivo']['type'] == "image/jpg" ){
    echo "imagen valida";
}else{
    if (move_uploaded_file($archivo_codigo, $archivo_subir)) {
        print("OK.<br/>");
    }else{
        print("Error de conexion con el servidor.<br/>"); }
    }
}
 
 
?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Validar archivos de subida JPG

Publicado por xve (6935 intervenciones) el 06/01/2014 20:52:49
Perdona, fernando, creo que te lo puse al reves... tu quieres que si la imagen es jpg te la mueva, verdad? entonces seria así:
1
2
3
4
5
6
7
8
9
if( $_FILES['archivo']['type'] == "image/jpg" || $_FILES['archivo']['type'] == "image/jpeg"){
    if (move_uploaded_file($archivo_codigo, $archivo_subir)) {
        print("OK.<br/>");
    }else{
        print("Error de conexion con el servidor.<br/>"); }
    }
}else{
    echo "La imagen no es jpg";
}

Coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de fernando

Validar archivos de subida JPG

Publicado por fernando (16 intervenciones) el 06/01/2014 21:20:07
Hola, gracias por tu preocupación, pero me sigue sin funcionar. El tema es que para mí al tener estas variables


$archivo_codigo = $archivo[$n];
$nombre_archivo = $n.".jpg";

Me trasforma todo en jpg, y anula la validación del if, puede ser?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar