PHP - Reconocer formato válido de img sino DIE

 
Vista:
Imágen de perfil de fernando

Reconocer formato válido de img sino DIE

Publicado por fernando (16 intervenciones) el 08/01/2014 21:19:37
Hola, estoy con un código que me sube archivos (de toda clase) y necesito que si no es JPG me tire un echo que diga no es JPG y luego DIE. El problema es que no se cual es la variable que cprresponde al archivo que se sube, y tampoco se donde poner el IF . Se agradece, dejo el código abajo

PD: el código que dejo funciona OK, peor no puedo ponerle otro IF!!!!

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 (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
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

Reconocer formato válido de img sino DIE

Publicado por xve (6935 intervenciones) el 09/01/2014 08:22:18
Hola Fernando, esto lo puedes saber con el valor del array: $_FILES['archivo'][type]

te podría quedar algo como:
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
<?php
$archivo = $_FILES['archivo']['tmp_name'];
$cantidad = count($archivo);
 
if($_FILES['archivo']["type"]=="image/jpeg" || $_FILES['archivo']["type"]=="image/pjpeg")
{
    //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/>");
        }
    }
}else{
    print("La imagen tiene que ser con formato jpg");
}
?>

Lo he escrito y no lo he podido probar... coméntanos si te funciona, 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

Reconocer formato válido de img sino DIE

Publicado por fernando (16 intervenciones) el 09/01/2014 15:08:08
Hola gracias por tu respuesta, lo probé, y no me funciona no valida los archivos, y no los sube tampoco
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

Reconocer formato válido de img sino DIE

Publicado por xve (6935 intervenciones) el 09/01/2014 15:27:48
Hola Fernando, nos puedes mostrar el código del formulario para poder probarlo... en teoría, solo aceptaría imágenes jpg...

has probado ha hacer un:
echo $_FILES['archivo']["type"];

Si nos puedes mostrar que te devuelve...
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

Reconocer formato válido de img sino DIE

Publicado por fernando (16 intervenciones) el 09/01/2014 15:37:23
Hola, hice un echo "<pre>";
print_r($_FILES);
echo "</pre>"; y me arrojo lo siguiente

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
34
35
36
37
38
39
40
Array
(
    [foto] => Array
        (
            [name] =>
            [type] =>
            [tmp_name] =>
            [error] => 4
            [size] => 0
        )
 
    [archivo] => Array
        (
            [name] => Array
                (
                    [0] => 21dic.jpg
                )
 
            [type] => Array
                (
                    [0] => image/jpeg
                )
 
            [tmp_name] => Array
                (
                    [0] => /tmp/phpLj91mz
                )
 
            [error] => Array
                (
                    [0] => 0
                )
 
            [size] => Array
                (
                    [0] => 208071
                )
 
        )
)

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 xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Reconocer formato válido de img sino DIE

Publicado por xve (6935 intervenciones) el 09/01/2014 20:28:56
fijate que es correcto, el contenido de $_FILES["archivo"]["type"] es image/jpeg, por lo que el condicional tendría que funcionar...
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

Reconocer formato válido de img sino DIE

Publicado por fernando (16 intervenciones) el 09/01/2014 15:40:31
el código completo es

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
34
35
36
37
38
39
40
41
<?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/>"); }
    }
?>
 
 
 
<form action="" method="post" enctype="multipart/form-data" name="inscripcion" onsubmit="return validar();">
 
 <input type="file" name="archivo[]" multiple="multiple" />
 
<input type="submit" value="Enviar"  class="trig" />
</form>
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

Reconocer formato válido de img sino DIE en multiarchivo

Publicado por xve (6935 intervenciones) el 09/01/2014 20:43:47
Hola Fernando, el problema es que estas utilizando la opcion multiple para pasar varios archivos a la vez, por lo que te llega un array de valores... prueba este código:

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
34
35
36
37
38
39
<?php
foreach($_FILES as $file)
{
    $archivo = $file['tmp_name'];
    $cantidad = count($archivo);
 
    if($file["type"]=="image/jpeg" || $file["type"]=="image/pjpeg")
    {
        //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/>");
            }
        }
    }else{
        print("La imagen tiene que ser con formato jpg");
    }
}
?>
 
<form action="" method="post" enctype="multipart/form-data" name="inscripcion">
<input type="file" name="archivo[]" multiple="multiple" />
<input type="submit" value="Enviar"  class="trig" />
</form>

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

Reconocer formato válido de img sino DIE en multiarchivo

Publicado por fernando (16 intervenciones) el 09/01/2014 21:13:34
Hol, lo probé pero no me funciona no me sube las imágenes....y tira dos veces el mismo echo si es Jpg o Txt

"La imagen tiene que ser con formato jpgLa imagen tiene que ser con formato jpg"
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

Reconocer formato válido de img sino DIE en multiarchivo

Publicado por xve (6935 intervenciones) el 09/01/2014 22:11:25
Hola Fernando, yo lo he probado y me funciona correctamente....

El problema puede ser, que si subes dos archivos que no son jpg te mostrara el mensaje, pero el script funciona... yo lo he probado y me ha funcionado.

Has probado a copiar el código tal cual te lo he puesto?
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

Reconocer formato válido de img sino DIE en multiarchivo

Publicado por fernando (16 intervenciones) el 09/01/2014 22:59:00
Hola, si, lo probé en un php aparte, copie y pegue el codigo. El archivo debería subirse a la carptea UP, peor no se me sube nada........a vos t sube bien el archivo? Quizá estoy comentindo algún error y no me doy cuenta
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

Reconocer formato válido de img sino DIE en multiarchivo

Publicado por xve (6935 intervenciones) el 10/01/2014 10:02:33
Hola Fernando, a mi no me sube la imagen porque hay variables que en el código no muestras, pero lo que estábamos probando, era si te diferenciaba los archivos jpg, no? eso te funciona bien?

Por ejemplo, que valor tiene la variable $user que es la carpeta donde vas a poner la imagen?? esa variable en el código que nos has mostrado no tiene valor.
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

Reconocer formato válido de img sino DIE en multiarchivo

Publicado por fernando (16 intervenciones) el 10/01/2014 13:55:04
Hola, la variable $user tiene el valor de el nombre del usuario, por ejemplo juan. Lo que hace el script es crear una subcarpeta en la carpeta up/$user.

Pero no me reconoce si es jpg u otro archivo, y no me sube los archivos
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

Reconocer formato válido de img sino DIE en multiarchivo

Publicado por xve (6935 intervenciones) el 10/01/2014 15:34:04
Hola Fernando, te pido disculpas, copie el código de un proyecto que las imágenes se subían por jquery y el resultado no es el mismo.

Aquí tienes el código completo funcionando. A mi me funciona perfectamente!!!

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
34
35
36
37
<?php
$user="xves";
if($_FILES["archivo"]["name"][0])
{
    for($i=0;$i<count($_FILES["archivo"]["name"]);$i++)
    {
        if($_FILES["archivo"]["type"][$i]=="image/jpeg" || $_FILES["archivo"]["type"][$i]=="image/pjpeg")
        {
            $nuevodirectorio = "up/".$user."/";
 
            if(file_exists($nuevodirectorio) || @mkdir($nuevodirectorio))
            {
                $origen=$_FILES["archivo"]["tmp_name"][$i];
                $destino=$nuevodirectorio.$_FILES["archivo"]["name"][$i];
 
                if(@move_uploaded_file($origen, $destino))
                {
                    echo "<br>".$_FILES["archivo"]["name"][$i]." movido correctamente";
                }else{
                    echo "<br>No se ha podido mover el archivo: ".$_FILES["archivo"]["name"][$i];
                }
            }else{
                echo "<br>No se ha podido crear la carpeta: up/".$user;
            }
        }else{
            echo "<br>".$_FILES["archivo"]["name"][$i]." - NO es imagen jpg";
        }
    }
}else{
    echo "<br>No se ha subido ninguna imagen";
}
?>
 
<form action="x4.php" method="post" enctype="multipart/form-data" name="inscripcion">
    <input type="file" name="archivo[]" multiple="multiple">
    <input type="submit" value="Enviar"  class="trig">
</form>

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
1
Comentar
Imágen de perfil de fernando

Reconocer formato válido de img sino DIE en multiarchivo

Publicado por fernando (16 intervenciones) el 10/01/2014 15:44:55
siiiii ahora si! anda perfecto! Mil gracias por tu constancia e interés!!!! Genio!
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