Foros del Web » Programando para Internet » PHP »

Consulta sobre explode y $_post['file']

Estas en el tema de Consulta sobre explode y $_post['file'] en el foro de PHP en Foros del Web. hola amigos, los molesto con una consulta, tengo este tramo de texto: Código PHP: $sep = explode ( 'image/' , $_FILES [ "file" ][ "type" ...
  #1 (permalink)  
Antiguo 15/05/2014, 18:52
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 14 años, 7 meses
Puntos: 6
Consulta sobre explode y $_post['file']

hola amigos, los molesto con una consulta, tengo este tramo de texto:

Código PHP:
$sep=explode('image/',$_FILES["file"]["type"]); 
$tipo$sep[1];//EXTRAEMOS EL TIPO DE IMAGEN 
el cual me permite como bien dice el comentario, determinar el tipo de extensión que tiene el archivo que estoy cargando mediante un formulario, pero solo trabaja para archivos de imágenes, si lo que quiero es cargar por ejemplo un archivo en formato pdf, docx etc....... no me logra determinar el tipo de archivo,
y supongo que el inconveniente radica en el 'image/'
la consulta es, como debería reemplazar ese 'image/'
para que me lea las extensiones de archivos que no sean imágenes?
espero no haber sido confuso
saludos y gracias
  #2 (permalink)  
Antiguo 15/05/2014, 18:58
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Consulta sobre explode y $_post['file']

Estas algo confundido..... 'image/' es la ruta a la que estas subiendo esas imagenes

Si subes archivos de texto, lo mas logico seria que crees otra carpeta ('textos' o lo que sea) y le des permisos de escritura (si estas en sistema Linux / Unix). (En tu lugar haria una carpeta 'uploads' y dentro de ella 'images', 'documents', ...etc)


Obviamente tu sabes a donde estas subiendo los archivos porque eso lo defines en el formulario.
__________________
Salu2!
  #3 (permalink)  
Antiguo 15/05/2014, 19: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: Consulta sobre explode y $_post['file']

Basta con que en lugar de dividir por "image/", lo hagas simplemente por la barra inclina "/".

Código PHP:
Ver original
  1. $sep = explode('/', $_FILES["file"]["type"]);
  2. $tipo = $sep[1];

Así, $sep[1] contendrá el tipo de archivo seleccionado. Sin embargo, un usuario malintencionado puede subir un archivo disfrazado de imagen, con lo que se saltaría una posible validación y terminaría afectando a tu aplicación. Mejor utiliza la función finfo_open y finfo_file para obtener el verdadero tipo MIME del archivo.

Saludos
__________________
«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
  #4 (permalink)  
Antiguo 16/05/2014, 11:16
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 14 años, 7 meses
Puntos: 6
Respuesta: Consulta sobre explode y $_post['file']

mil gracias por la respuesta, es de gran utilidad
saludos
Cita:
Iniciado por Alexis88 Ver Mensaje
Basta con que en lugar de dividir por "image/", lo hagas simplemente por la barra inclina "/".

Código PHP:
Ver original
  1. $sep = explode('/', $_FILES["file"]["type"]);
  2. $tipo = $sep[1];

Así, $sep[1] contendrá el tipo de archivo seleccionado. Sin embargo, un usuario malintencionado puede subir un archivo disfrazado de imagen, con lo que se saltaría una posible validación y terminaría afectando a tu aplicación. Mejor utiliza la función finfo_open y finfo_file para obtener el verdadero tipo MIME del archivo.

Saludos
  #5 (permalink)  
Antiguo 16/05/2014, 11:17
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 14 años, 7 meses
Puntos: 6
Respuesta: Consulta sobre explode y $_post['file']

antes que nada gracias por la respuesta, pero creo que te eqiuvocas, ya que image/ no es la carpeta en la cual subo mis archivos, la carpeta a la cual los subo se llama FILES, y el código que yo copie solo lo utilizo para obtener la extensión de dicho archivo, para permitir o no, denendiendo de su extensión, realizar el upload
Cita:
Iniciado por Italico76 Ver Mensaje
Estas algo confundido..... 'image/' es la ruta a la que estas subiendo esas imagenes

Si subes archivos de texto, lo mas logico seria que crees otra carpeta ('textos' o lo que sea) y le des permisos de escritura (si estas en sistema Linux / Unix). (En tu lugar haria una carpeta 'uploads' y dentro de ella 'images', 'documents', ...etc)


Obviamente tu sabes a donde estas subiendo los archivos porque eso lo defines en el formulario.
  #6 (permalink)  
Antiguo 16/05/2014, 11:31
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 14 años, 7 meses
Puntos: 6
Respuesta: Consulta sobre explode y $_post['file']

observando nuevamente, se me hace que debería cambiar ese image/ por algo como file/ o files/ pero probe haciéndolo, y no me lee la extensión del archivo
Cita:
Iniciado por Alexis88 Ver Mensaje
Basta con que en lugar de dividir por "image/", lo hagas simplemente por la barra inclina "/".

Código PHP:
Ver original
  1. $sep = explode('/', $_FILES["file"]["type"]);
  2. $tipo = $sep[1];

Así, $sep[1] contendrá el tipo de archivo seleccionado. Sin embargo, un usuario malintencionado puede subir un archivo disfrazado de imagen, con lo que se saltaría una posible validación y terminaría afectando a tu aplicación. Mejor utiliza la función finfo_open y finfo_file para obtener el verdadero tipo MIME del archivo.

Saludos
  #7 (permalink)  
Antiguo 16/05/2014, 11:41
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 14 años, 7 meses
Puntos: 6
Respuesta: Consulta sobre explode y $_post['file']

ya resolvi el problema, y gracias al amigo Alexis88, ya que utilizando solo la "/"
con eso ya me lee cualquier tipo de extensión, y asi puedo delimitar que extensiones quiero permitir que se carguen y cuales no
muchas gracias x la ayuda
  #8 (permalink)  
Antiguo 16/05/2014, 11:51
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Consulta sobre explode y $_post['file']

Veo no entiendes mucho lo que hace explode(), cierto ? ahi esta para separar el archivo de su PATH
__________________
Salu2!

Etiquetas: explode, formulario
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 16:13.