- Conviertes dicha carpeta con imágenes en directorio virtual, y luego accedes a dichas imágenes a través de una url.
- Añades un archivo handler, digamos Handler1.ashx, para que a través de él accedas a cada imagen ubicada en dicha carpeta.
La segunda opción, al contrario te brinda muchas ventajas… como es la privacidad de las imágenes: no se menciona dónde están guardadas las imágenes… sólo se puede acceder a ellas a través de este handler…
además si quisieras poner algunas validaciones adicionales antes de despachar la imagen… podrías incluirlas en este handler. Hace algún tiempo escribí algo al respecto, puedes leerlo desde aquí:
http://www.neuronasoft.net/2010/04/aspnet-imagenes-solo-para-usuarios.html
Vamos entonces a demostrar entonces cómo servimos imágenes a través de un handler.ashx:
Primero, tendrás que ponerle a tus controles imagen una ruta como esta:
<asp:Image ID="Image1" ImageUrl="Handler1.ashx?img=banner.png" runat="server" />Date cuenta que estoy pasando el nombre de la imagen como un querystring.
Luego, el código del handler sería el siguiente:
Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest Dim Path As String = "C:\PrivateImages\" Dim img As String = context.Request.QueryString("img") context.Response.ContentType = "image/png" context.Response.TransmitFile(Path & img) End SubComo ves, es muy simple, sin embargo nos resuelve muchos contratiempos.
Espero que te sea de utilidad
4 comentarios:
Hola javichere,
puedes usar alguno de los convertidores online de código:
http://converter.telerik.com/
http://www.developerfusion.com/tools/convert/vb-to-csharp/
http://www.carlosag.net/tools/codetranslator/
Saludos
Eres grande viejo, esto era lo que buscaba ;)
Excelente!!! Gracias por el aporte.
Publicar un comentario