Foros del Web » Programando para Internet » PHP »

detectar extencion de archivos

Estas en el tema de detectar extencion de archivos en el foro de PHP en Foros del Web. hola :D quisiera saber si se puede y claro el codigo para saber si se puede saber extencion de archivos con solo saber el nombre ...
  #1 (permalink)  
Antiguo 29/05/2011, 16:28
 
Fecha de Ingreso: diciembre-2010
Ubicación: en la luna
Mensajes: 108
Antigüedad: 13 años, 4 meses
Puntos: 8
detectar extencion de archivos

hola :D

quisiera saber si se puede y claro el codigo para saber si se puede saber extencion de archivos con solo saber el nombre ; ejemplo

una imagen llamada 339dk349df y sin ponerle la extencion .jpg sino que el codigo busque el archivo y le ponga la extencion que es.


es que mi problema es el siguiente ...

digamos que para ir a una imagen es el siguiente link

http:// misitio.com/i?=339dk349d.jpg

y para poner la imagen (osea que se vea en la pagina) es el siguiente codigo

$_GET[i] lo cual hace que se lea la url como la direccion de la imagen

y si a esa direccion no lo pongo el .jpg no lee la imagen

y lo que quiero es que busque el nombre de la imagen y le inserte la extencion ya sea .png , .jpg , .bmp o segun sea el caso


de antemano grax :D

por si quieren probar para que vean mas o menos como funciona esto aqui esta el link http://redvirus13.netne.net/upload
  #2 (permalink)  
Antiguo 29/05/2011, 16:49
 
Fecha de Ingreso: agosto-2010
Ubicación: Tenerife
Mensajes: 893
Antigüedad: 13 años, 8 meses
Puntos: 202
Respuesta: detectar extencion de archivos

Comprueba en el directorio donde almacenes las imágenes los nombres de cada archivo.
Lo puedes guardar en un array mismo.

Recorres el array, si hay algún elemento que contenga el nombre de esa imagen cargas ese fichero y así ya tienes nombre + extensión.
__________________
Pensaba que internet era una gran biblioteca de sabiduría, hasta que comprendí que un libro no puede tener mil páginas llenas de faltas de ortografía... :(
  #3 (permalink)  
Antiguo 29/05/2011, 16:55
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 16 años, 7 meses
Puntos: 188
Respuesta: detectar extencion de archivos

Si no le pones el .jpg no va a leer nada. Ya habíamos tratado este tema en otro post.

Si quieres obtener el tipo de archivo puedes usar:

1.- Expresiones regulares para extraer el formato al archivo
2.- Condicionales para obtener el formato a traves de los tipos mime de los archivos

esos tipos MIME lo puedes obtener de ésta manera:
filetype($archivo);

o utilizando

mime_content_type("archivo");

O simplemente

$_FILE['archivo']['type'];

Saludos.
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.
  #4 (permalink)  
Antiguo 29/05/2011, 17:09
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 16 años, 7 meses
Puntos: 188
Respuesta: detectar extencion de archivos

Me muestra muy bien la imagen.

Ya entendi lo que quieres hacer, mi mas sincera recomendación es que práctiques un poco con PHP antes de lanzarte a modificar un prefabricado.

------------------------------------------------------
1.- Subes una imagen al servidor, cuando la recibes por POST (no por GET!) puedes extraer el nombre, el formato, el tipo de archivo, cuanto pesa, etc....

usando:

$_FILE['campo']['name'];
$_FILE['campo']['type'];
$_FILE['campo']['size'];

donde campo es el nombre del campo file que sube la imagen

ej.
Código PHP:
Ver original
  1. <form action="archivo.php" method="post" enctype="multipart/form-data">
  2. <input type="file" name="campo">
  3. </form>

Y las expreciones regulares te pueden servir para extraer lo que haya despues de un punto, en este caso el formato de archivo.

ya que $_FILE['campo']['name'] te da como resultado algo "miimagen.jpg", podemos verlo como una cadena de texto y extraer el ".jpg" para guardarlo en otra variable,

Si quieres algo mas sencillo de comprender que una expresion regular puedes usar las funciones de PHP para "strings" aqui las tienes: http://php.net/manual/en/book.strings.php

O si deseas algo todavia mas sencillo

puedes usar las condicionales para obtener una extension.

ej

Código PHP:
Ver original
  1. $tipo_de_archivo = $_FILE['campo']['type'];
  2.  
  3.  
  4. if($tipo_de_archivo == "image/jpeg"){
  5.  
  6.     $formato = ".jpg"
  7.  
  8. }
  9. etc.....


Y de esta 3 formas que se me ocurren puedes tener el formato del archivo que han subido, si quieres guardarlo en una DB o pegarlo al final del nombre de la imagen etc.....



PD: Ese prefabricado que estas usando crea un nombre aleatorio para da archivo, por eso es que separa el formato del archivo, para despues pegarlo al final del nombre aleatorio que se le ha asignado al archivo y quede la imagen intacta.

Eso es lo que pasa.

________________________________________
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.
  #5 (permalink)  
Antiguo 29/05/2011, 22:34
 
Fecha de Ingreso: diciembre-2010
Ubicación: en la luna
Mensajes: 108
Antigüedad: 13 años, 4 meses
Puntos: 8
Respuesta: detectar extencion de archivos

grax :D , empezare a experimentar un poco mas
  #6 (permalink)  
Antiguo 29/05/2011, 22:41
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: detectar extencion de archivos

Te recomiendo el uso de la librería fileinfo Específicamente finfo_file
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #7 (permalink)  
Antiguo 29/05/2011, 22:48
marcofbb
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: detectar extencion de archivos

Tu upload si es el nativo de unijimpe tiene un bug, y te pueden hackear.

Te dejo la solución:
http://www.marcofbb.com.ar/upload-de-imagenes/

Y tenes otro bug en el archivo descargar.php dentro de tmp/ ya que no verifica lo que descargas y te pueden descargar los archivos .php

Te dejo la solucion a eso otro:
http://www.marcofbb.com.ar/obligar-a...vos-de-tu-web/
  #8 (permalink)  
Antiguo 29/05/2011, 22:53
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: detectar extencion de archivos

Bueno aún así recomiendo el uso de finfo_file, para eso fue creado, para verificar si el archivo es realmente lo que dice ser.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos

Etiquetas: Ninguno
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:10.