Foros del Web » Programando para Internet » PHP »

Problema con tipos MIME

Estas en el tema de Problema con tipos MIME en el foro de PHP en Foros del Web. hola, en esta parte del script de un upload me da fallo por que he introducido varios tipos mime y al parecer no estan bien ...
  #1 (permalink)  
Antiguo 17/02/2006, 11:24
MindPaniC
Invitado
 
Mensajes: n/a
Puntos:
Problema con tipos MIME

hola,

en esta parte del script de un upload me da fallo por que he introducido varios tipos mime y al parecer no estan bien introducidos... ¿como seria la sentencia?

Código PHP:
// otro checkeo más: tiene el archivo el tipo MIME correcto?
  
if ($userfile_type != 'image/jpeg','image/gif','image/png')
  {
    echo 
'Problema: El archivo no tiene el formato adecuado (jpeg, jpg, gif o png)';
    exit;
  } 
puff es que he leido en php.net pero no veo como debo de poner este tipo de sentencias para que las lea bien.

me da este error:
Cita:
Parse error: parse error, unexpected ',' in /home/mindpani/public_html/artistas/upload.php on line 37
  #2 (permalink)  
Antiguo 17/02/2006, 11:42
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
lo que está dentro de los paréntesis del if debería ser:

( ($userfile_type != 'image/jpeg') AND ($userfile_type != 'image/gif') AND ($userfile_type != 'image/png') )


aunque quizás sería más conveniente buscar con strpos() las cadenas "jpeg", "gif" y "png" en $userfile_type, pero eso es cuestión de gustos....

www.php.net/strings


Saludos.
  #3 (permalink)  
Antiguo 17/02/2006, 11:49
MindPaniC
Invitado
 
Mensajes: n/a
Puntos:
perfecto muchas gracias.

por cierto.. como obtengo la hora local en el mismo formato que el tipo DATETIME (YYYY-MM-DD HH:MM:SS) es que necesito almacenar la hora de un upload en la base de datos en el campo fecha y ....

se que con esto puedo sacar datos de la fecha de hoy... pero no se como colocarlos y obtener los necesarios para almacenarlos en la base de datos.
Código PHP:
<?php
$hoy 
getdate();
print_r($hoy);
?>
como se hace..

Edito se subir datos mysql.. pero no se como obtener la fecha en el formato adecuado para pasarla luego a mysql con un script.
  #4 (permalink)  
Antiguo 17/02/2006, 11:54
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
por cierto.. como obtengo la hora local en el mismo formato que el tipo DATETIME (YYYY-MM-DD HH:MM:SS) es que necesito almacenar la hora de un upload en la base de datos en el campo fecha y ....
Eso lo -debes- hacer en SQL directamente.

Si usas un campo tipo DATETIME (de Msyql) . .usa la función NOW()

INSERT INTO tabla (id,fecha) VALUES ('',NOW())

Obrseva que la llamada a la función de Msyql no va entre comillas como los datos que son variables de PHP ...

Un saludo,
  #5 (permalink)  
Antiguo 17/02/2006, 12:02
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Sobre la pregunta inicial:
También puedes usar un array y luego usar la función in_array(). Es más facil mantener un código así como para añadir o quitar elementos que no se acepten ...

Código PHP:
<?
$mime_archivo
=$_FILES['archivo']['type'];
$mimes_aceptados=array('image/jpeg','image/gif','image/png');
if (!
in_array($mime_archivo,$mimes_aceptados)){
   die (
"Tipo archivo no aceptado");
}
Un saludo,
  #6 (permalink)  
Antiguo 17/02/2006, 12:04
MindPaniC
Invitado
 
Mensajes: n/a
Puntos:
Cita:
Iniciado por Cluster
Sobre la pregunta inicial:
También puedes usar un array y luego usar la función in_array()

Código PHP:
<?
$mime_archivo
=$_FILES['archivo']['type'];
$mimes_aceptados=array('image/jpeg','image/gif','image/png');
if (!
in_array($mime_archivo,$mimes_aceptados)){
   die (
"Tipo archivo no aceptado");
}
Un saludo,
¿¿cual es la funcion mas segura?? por que para ser el primer sistma que hago de este tipo me da miedo la seguridad escasa que pueda tener
  #7 (permalink)  
Antiguo 17/02/2006, 14:07
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Ambos métodos son "seguros" (usastes el formato MIME del archivo . .peor sería ver la .extensión como otros suelen guiarse para ver el tipo de archivo que es).

El hecho de usar un array así como te propongo sólo aporta facilidad de mantenimiento del código, fijate que simple es añadir más formatos MIME que aceptas ...


Un saludo,
  #8 (permalink)  
Antiguo 17/02/2006, 14:15
MindPaniC
Invitado
 
Mensajes: n/a
Puntos:
Entonces esta seria la forma mas adecuada para modificaciones... lo he adaptado un poco..

Código PHP:
<?
$userfile_type 
$HTTP_POST_FILES['userfile']['type'];
$userfile_type_aceptados=array('image/jpeg','image/gif','image/png');
if (!
in_array($userfile_type,$userfile_type_aceptados))
{
echo 
'Problema: El archivo no tiene el formato adecuado (jpeg, jpg, gif o png)';
exit;
}
saludos
  #9 (permalink)  
Antiguo 17/02/2006, 14:18
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Si, .. sería eso (pero te sobra un $ en $userfile_type).

De hecho .. esa "variable" tipo array: $userfile_type_aceptados estaría muy bien fuera de tu script.. o definida al principio .. como un archivo de "configuración" (a lo mejor para este caso sólo aceptas esos formatos .. en otra ocasión necesitaras dejar pasar otros formatos ... ).

El objetivo es que todo este trabajo que estás haciendo ahora no se quede en "exclusiva" para este proyecto que estas haciendo sino te sirva para cualquier otro que tenga similares características.

Un saludo,
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 03:47.