2011-10-13 19 views
5

quiero obtener el archivo de extensión de url.obtener extensión de archivo (editar)

por ejemplo obtener la extensión http://www.iranfairco.com/download-file/02912bb889cb24. si la extensión este archivo es gif.

EDIT:

por ejemplo, esta url "http://www.online-convert.com/result/d8b423c3cbc05000cc52ce7015873e72"

Por favor ayuda ¿Cómo conseguir la extensión de esta URL?

+6

veo nada aquí que indique un gif. La url no contiene '.gif' y la solicitud http devuelve un 404. – CodesInChaos

Respuesta

10

¿Por qué Path.GetExtension no funciona para usted?

EDITAR
Ah, por lo que su URL no especifica la extensión que está después. Eso significa cualquier cosa podría estar detrás de él.

Simplemente al inspeccionar el valor de la cadena de la url, no puede ver lo que hay detrás de ella. Su (segundo) punto de ejemplo (en última instancia) a un archivo .gif, pero también podría haber sido un archivo .jpg, .doc (o incluso .exe).

Deberá realizar una búsqueda electrónica para ver lo que recibe. Usualmente puedes probar con HEAD para obtener solo los encabezados (e inspeccionar el tipo de contenido), pero no creo que funcione aquí. Prueba Fiddler para ver lo que obtienes, luego puedes refinar tu pregunta.

+0

¿Funciona esto en las URL de la web? – musefan

+1

'Path.GetExtension (" http://www.someserver.com/image.gif ")' returns ".gif" –

+0

ah sí, eso funcionaría, pero no sería por el ejemplo dado ... pensé que tenía encontré una función súper increíble, estaba esperando estar muy impresionado: D – musefan

0

Puedes dividir la cadena en char '.' y obtener la última cadena en la matriz devuelta ..

+0

no.este nombre de archivo url es hash.filename = 02912bb889cb24 – ashkufaraz

+0

no si la cadena no tiene la extensión de archivo en ella ... que el ejemplo no – musefan

+0

No, obviamente, porque el ejemplo es un fracaso ... ¿cómo es eso mi culpa? – Rob

6

Salida aquí:

http://www.java2s.com/Code/CSharp/Network/GetHTTPResponseheaders.htm

Usted estará interesado en el Response.ContentType que se debe dar algo así como "image/gif" para una imagen gif

+0

Eso depende del encabezado del contenido que se está configurando. Dada la etiqueta asp.net, me imagino que la respuesta de @Curt es la más correcta, y que lo que se requiere es aplicar un tipo de contenido en asp. – stevenrcfox

+0

@ Overflow, sé que requiere que el servidor configure el tipo de contenido cuando maneja esa llamada a la URL.Y mi suposición es que esta URL se usa para proporcionar una descarga de archivos (como se sugiere en la propia URL), y lo más probable es que el servidor devuelva una secuencia de respuesta que contenga solo la imagen y, por lo tanto, establezca un tipo de contenido. Por supuesto, el tipo de contenido podría ser incorrecto y eso depende de la implementación. Pero para hacerlo correctamente, la implementación debería proporcionar el tipo de contenido correcto y, por lo tanto, mi respuesta podría encontrar el tipo de archivo – musefan

1

Esta URL parece estar enlazando a una página que tendrá una descarga para un archivo.

El 02912bb889cb24 es quizás una referencia de base de datos a ese archivo.

Por lo tanto, sin acceso a cualquier API para este sistema, yo no creo que es posible en absoluto para calcular la extensión de archivo para el archivo de acceder a través de esta URL

+0

Tiendo a ver que esta es la respuesta más precisa, con un par de adiciones, 1. Cuando el archivo se cargue, debería poder obtener el tipo de contenido y guardarlo en el archivo. base de datos con el archivo. Luego, cuando se descarga el archivo, debe poder establecer el tipo de contenido nuevamente. – stevenrcfox

4

probar esto

string path = @"http://www.iranfairco.com/download-file/02912bb889cb24.gif"; 
string e = Path.GetExtension(path); 
+0

url igual a 29493903 no es igual a 290930232.gif – ashkufaraz

Cuestiones relacionadas