Foros del Web » Programando para Internet » PHP »

¿como se puede obtener el md5 de un fichero obtenido de un campo file?

Estas en el tema de ¿como se puede obtener el md5 de un fichero obtenido de un campo file? en el foro de PHP en Foros del Web. Hola a todos. Mi duda es la siguiente: Tengo un formulario con un campo tipo file. Necesito calcular el md5 de dicho fichero para luego ...
  #1 (permalink)  
Antiguo 11/06/2004, 05:15
 
Fecha de Ingreso: marzo-2004
Mensajes: 550
Antigüedad: 13 años, 9 meses
Puntos: 5
Sonrisa ¿como se puede obtener el md5 de un fichero obtenido de un campo file?

Hola a todos. Mi duda es la siguiente:

Tengo un formulario con un campo tipo file. Necesito calcular el md5 de dicho fichero para luego comprobarlo con el que tengo en mi base de datos para ver si son iguales o no. El problema es que no se como se hace.
Al objeto tipo file lo he llamado 'archivo' y cuando hago md5($archivo) siempre obtengo cosas diferentes aunque sea el mismo fichero. He probado a hacer print $archivo y al parecer me da la ruta donde se encuentra temporalmente dicho archivo. Me da algo como:

c:\WINNT\php1E.tmp

¿como puedo calcular el md5 de un fichero obtenido de un campo file de un formulario?


Un saludo.
  #2 (permalink)  
Antiguo 11/06/2004, 08:07
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pero .. a ver

Cuando subes un archivo por HTTP tienes várias propiedades para el archivo en:
$_FILE['archivo']['tmp_name'] Nombre temporal del archivo (parece tu c:\winnt .. tmp)
$_FILE['archivo']['name'] (el nombre del archivo)
$_FILE['archivo']['type'] (el formato MIME del archivo)

Y $_FILE['archivo'] (es el própio archivo binario) ..

(o $archivo_propiedad NADAAA recomendable accederlo así)

Así que el MD5() deberías aplicarlo a $_FILE['archivo'] no al $_FILE['archivo']['tmp_name'] ni a otra propiedad. Si el archivo tiene el mismo nombre, tamaño y es del mismo formato MIME .. debería dar lo mismo en todos los casos.

Un saludo,
  #3 (permalink)  
Antiguo 11/06/2004, 08:16
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

md5() devuelve el md5 de la cadena que le pasas como parametro. Asi que estabas calculando el md5 del nombre de fichero temporal (que cambia cada vez).

Con PHP4.2 existe la funcion md5_file() (www.php.net/md5_file) al que pasas como parametro la ruta del fichero del que quieres calcular el md5 de sus contenidos.

Si tu version es anterior, en los comentarios de los usuarios en la pagina del manual ponen alternativas.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
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 22:45.