c# - type - ¿Cómo se sirve una imagen desde una URL con una extensión ASPX?
mostrar una imagen en mvc (5)
Aparte de todas las demás respuestas, pueden estar haciendo un Server.Transfer()
(para que no lo veas del lado del cliente) en el archivo de imagen. Esto todavía significa que los encabezados de respuesta se están configurando en el tipo MIME apropiado, pero también significa que la imagen no proviene necesariamente de una base de datos. Esta técnica se puede utilizar para ocultar la URL de la imagen real en un intento de evitar enlaces directos.
¿Alguien puede decir cómo crear ese tipo de URL?
por ejemplo, si ves la url
http://office.microsoft.com/global/images/default.aspx?assetid=ZA103873861033
redirigirás a una imagen ...
mi pregunta es, aunque esta url es una imagen ... su extensión es aspx ... ¿cómo es posible? cómo crear ese tipo de url''s
Gracias
Configurando el ContentType en la respuesta del servidor
HttpContext.Response.ContentType = "image/jpeg";
Este es un método común para mostrar una imagen que está almacenada como un objeto binario en una base de datos. Un tutorial, entre muchos, se puede encontrar aquí .
Esencialmente, lo que están haciendo es usar la página aspx
para aceptar el parámetro URL que les dice qué imagen buscar de la base de datos. Luego, en la respuesta borran todas las salidas y encabezados, establecen los encabezados para la imagen, escriben los datos binarios en la secuencia de respuesta y cierran la secuencia de respuesta.
Entonces, en realidad no se trata de "redireccionarte" a una imagen. La "página" solicitada resulta ser un recurso de imagen en la respuesta.
La forma más fácil es agregar el controlador genérico * .ashx y en el archivo ashx tendrás un código detrás del cual puedes obtener la cadena de consulta y manipular la respuesta, por ejemplo. Response.WriteFile (...)
Las extensiones de archivo literalmente no tienen ningún significado en la WWW. Lo que describe correctamente el contenido en una URL en particular es el tipo de contenido / tipo MIME . Esto se entrega en un encabezado HTTP cuando se solicita la URL antes de la entrega de la carga principal HTTP. Otras respuestas describen cómo puede configurar esto correctamente en ASP.NET.