Foros del Web » Programando para Internet » PHP »

[Consulta] Comprobar tipo de archivo.

Estas en el tema de [Consulta] Comprobar tipo de archivo. en el foro de PHP en Foros del Web. Necesito validar que los archivos que estoy por subir al servidor sean imagenes. $types = array(); contiene los tipos permitidos. Código: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: ...
  #1 (permalink)  
Antiguo 06/05/2012, 15:37
 
Fecha de Ingreso: marzo-2008
Mensajes: 1.020
Antigüedad: 16 años
Puntos: 21
[Consulta] Comprobar tipo de archivo.

Necesito validar que los archivos que estoy por subir al servidor sean imagenes.

$types = array(); contiene los tipos permitidos.


Código:

Código PHP:
Ver original
  1. $types = array(
  2.         'image/jpeg',
  3.         'image/gif',
  4.         //'image/png',
  5.         'image/pjpeg',
  6.         'image/x-png'
  7.   );
  8.  
  9.  
  10. //Parametro $filetypes
  11.  
  12.  
  13. array(     (int) 0 => array(         'name' => '1.jpg',         'type' => 'image/jpeg',         'tmp_name' => '/tmp/phpwl10Kv',         'error' => (int) 0,         'size' => (int) 40583     ),     (int) 1 => array(         'name' => 'lancha.png',         'type' => 'image/png',         'tmp_name' => '/tmp/phpdWvZoS',         'error' => (int) 0,         'size' => (int) 206569     ) )
  14.  
  15.  
  16. function check($filetypes)
  17.     {    
  18.  
  19.         $error = false;
  20.         foreach (types as $allow) {
  21.             foreach ($filetypes as $filetype) {
  22.                 if ($filetype['type'] == $allow) {
  23.                      $error = true;
  24.                 }
  25.             }
  26.         }
  27.        
  28.         if ($error == true) {
  29.             return true;
  30.         }
  31.        
  32.     }

Necesito comprobar el tipo de archivo de cada uno de las imagenes que subo con los tipos permitidos ($types).

Este código que les muetro sólo valida una sóla imagen y se sale del bucle.
__________________
_
  #2 (permalink)  
Antiguo 06/05/2012, 15:43
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 15 años, 7 meses
Puntos: 139
Respuesta: [Consulta] Comprobar tipo de archivo.

Antes de subirlo verifica el tipo de mime aqui tienes un listado
ej

Código PHP:
Ver original
  1. if ($_FILES['campo-formulario']['type'] == "image/jpeg") {
  2. # ...
  3. }
Saludos.
  #3 (permalink)  
Antiguo 06/05/2012, 15:47
 
Fecha de Ingreso: marzo-2008
Mensajes: 1.020
Antigüedad: 16 años
Puntos: 21
Respuesta: [Consulta] Comprobar tipo de archivo.

En esta parte del código que puse anteriormente,

Código PHP:
Ver original
  1. if ($filetype['type'] == $allow) {

Comrpuebo que el tipo de archivo cargado mediante un formulario sea igual a el listado que contiene el array $type.

Necesito comprobar cada uno de los archivos que subo en forma individual. pero lo que hice se sale del bucle y no vrifica a todos.
__________________
_
  #4 (permalink)  
Antiguo 06/05/2012, 16:09
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 15 años, 7 meses
Puntos: 139
Respuesta: [Consulta] Comprobar tipo de archivo.

Tu codigo en varios puntos tiene algunos errores, prefiero presentarte una alternativa
basada en lo que ya tienes.

Código PHP:
Ver original
  1. $my_array['type'][] = 'image/jpeg';
  2. $my_array['type'][] = 'image/png';
  3.  
  4.  
  5. if( check($my_array['type'])){
  6.  
  7. echo "existen no permitidos";
  8. }else{
  9. echo "todos son permitidos";
  10.  
  11.    
  12. }
  13.  
  14. function check($filetypes)
  15.     {    
  16.  
  17.  $types = array(
  18.         'image/jpeg',
  19.         'image/gif',
  20.         'image/png',
  21.         'image/pjpeg',
  22.         'image/x-png'
  23.   );
  24.         $error = false;
  25.         foreach ($filetypes as $file) {
  26.             if( !in_array($file, $types) ){
  27.                 $error = true;
  28.             }
  29.            
  30.         }
  31.             return $error;
  32.        
  33.        
  34.     }

Simule los campos de file con $my_array
espero que puedas interpretarlo.

Saludos.
  #5 (permalink)  
Antiguo 06/05/2012, 16:17
 
Fecha de Ingreso: marzo-2008
Mensajes: 1.020
Antigüedad: 16 años
Puntos: 21
Respuesta: [Consulta] Comprobar tipo de archivo.

Pues eso no funciona.
¿Me estoy explicando mal?
__________________
_
  #6 (permalink)  
Antiguo 06/05/2012, 16:25
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 15 años, 7 meses
Puntos: 139
Respuesta: [Consulta] Comprobar tipo de archivo.

Lo que entiendo es que subes varios archivos al server y quieres comprobar que cada archivo sea del tipo que antes definiste en el arreglo $types.
Si uno de los archivo no esta dentro del tipo que tu definiste entonces te devuelve un error.

Eso es lo que entiendo y en base a eso fue que hice el código.
Si esta no es la teoría pues seria bueno que extendiera mas lo que pretendes hacer.

Saludos.
  #7 (permalink)  
Antiguo 06/05/2012, 16:31
 
Fecha de Ingreso: marzo-2008
Mensajes: 1.020
Antigüedad: 16 años
Puntos: 21
Respuesta: [Consulta] Comprobar tipo de archivo.

Bien, ahí funciona. Tuve que invertir los valores true and false para que siga con la linea de lo que venia haciendo.

Muchas Gracias.

PD: Hay alguna otra manera de validar los tipo MIME?
__________________
_

Etiquetas: imagenes, tipo
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 06:21.