Foros del Web » Programación para mayores de 30 ;) » .NET »

Saber de que tipo es un fichero subido? no por extension

Estas en el tema de Saber de que tipo es un fichero subido? no por extension en el foro de .NET en Foros del Web. Se puede saber con seguridad que un fichero subido via web es de un tipo concreto? Yo lo hago así, pero esto se puede esquivar ...
  #1 (permalink)  
Antiguo 11/03/2005, 09:44
 
Fecha de Ingreso: octubre-2004
Mensajes: 878
Antigüedad: 19 años, 7 meses
Puntos: 1
Saber de que tipo es un fichero subido? no por extension

Se puede saber con seguridad que un fichero subido via web es de un tipo concreto?
Yo lo hago así, pero esto se puede esquivar con cambiar la extensión del archivo
if (file.ContentType=="application/vnd.ms-excel")

Hay alguna forma mejor?
graciasss
  #2 (permalink)  
Antiguo 11/03/2005, 12:21
Avatar de Rony J.  
Fecha de Ingreso: noviembre-2004
Ubicación: Maracay - Vzla
Mensajes: 223
Antigüedad: 19 años, 6 meses
Puntos: 0
Esto te devuelve el tipo de archivo:

file.PostedFile.ContentType
__________________
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas. Albert Einstein
  #3 (permalink)  
Antiguo 11/03/2005, 12:40
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 3 meses
Puntos: 50
Cita:
Esto te devuelve el tipo de archivo:
El problema es que si es un archivo .doc y lo renombras a .txt u otra extension no toma la original..

He estado pensando al respecto, pero todavía no he encontrado la forma... , tal vez si usas algo de un stream junto con un buffer para leer el contenido y dependiendo de eso saber que es lo que tiene...

Algo como ésto:

Cita:

Dim fs As System.IO.FileStream

fs = New System.IO.FileStream(upload.PostedFile.FileName, IO.FileMode.OpenOrCreate, IO.FileAccess.Read)
Dim iLen As Integer = CType(fs.Length, Integer)
Dim docBuffer(iLen) As Byte

fs.Read(docBuffer, 0, iLen)
...
..
'pero de aqui habría que continuar...
Es una idea... pero si alguien se le ocurre de otra forma sería bueno conocerla ya que sería de gran ayuda...

El problema es que los programas se basan siempre en la extensión mas que en el contenido... pensandolo bien no se si se pueda hacer...

Pero bueno.. habrá que checar todas las posiblidades...
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #4 (permalink)  
Antiguo 13/03/2005, 06:39
 
Fecha de Ingreso: febrero-2005
Mensajes: 30
Antigüedad: 19 años, 3 meses
Puntos: 0
Hola RootK,

Si, estás bien encaminado, hay que saber cual es la cabecera de los archivos que quieres controlar y ya está.

Los documentos de microsoft, casi todos empiezan y tienen la misma cabecera.
Los archivos .exe, todos empiezan o con MZ o con ZM, los archivos de imágen también tienen una cabecera, etc...

los que no se pueden controlar son los txt.

Un saludo.
  #5 (permalink)  
Antiguo 14/03/2005, 02:34
 
Fecha de Ingreso: octubre-2004
Mensajes: 878
Antigüedad: 19 años, 7 meses
Puntos: 1
Gracias por las respuestas, me parece que manolo mad tendrá razon supongo que no se puede controlar automaticamente, así que habrá que leer la cabecera. Bueno intentaré buscar cual es la cabecera de los excel y hacer una funcion que me lo mire. Cuando tenga algo claro os digo ;)
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 21:22.