net mvc deploy asp asp.net image app-data

asp.net - mvc - upload file asp net



Las imágenes que están en la carpeta App_Data no se muestran en el navegador (6)

¡Depende! ;)

Hay buenas razones para guardar imágenes en App_Data . En situaciones en las que los usuarios pueden cargar sus archivos o logotipos, protegerá estos archivos y no los hará accesibles a otros usuarios ni será público.

Lo más importante es que es la única forma de tener diferentes archivos por servidor / instancia de implementación.

Al implementar su aplicación, puede proteger estos archivos cargados por los usuarios por instancia de servidor habilitando "Excluir archivos de App_Data" en su configuración de implementación.

Si desea acceder a estos archivos por url, use un controlador de descarga, por ejemplo, downloadfile.ashx.

Espero que esto ayude.

Cuando configuro la propiedad de la URL de imagen para asp control de imagen que está en la carpeta App_Data, la imagen se muestra en la vista de diseño de página pero no en el navegador.

<form id="form1" runat="server"> <div> <asp:Image ID="Image1" runat="server" ImageUrl="~/App_Data/p3.jpg" /> </div> </form>

Parece ser sencillo, pero no muestra la imagen.


De acuerdo, es hora de hacer lo imposible ... Si bien no puede cargar imágenes directamente desde la carpeta app_data, puede escribir su propio controlador http que leerá el archivo de imagen de la carpeta app_data y lo enviará de vuelta al cliente. Sería una solución alternativa, pero en general, los datos están destinados a datos que solo su aplicación puede leer. Al tener un controlador que lee los datos, aún puede devolver esas imágenes.

¡Pero es una mala práctica y si estuvieras trabajando para mí, serías despedido inmediatamente!


Estoy en desacuerdo. Cuando oculta imágenes en la carpeta App_Data y crea su propio manejador de http, asegura sus imágenes y puede agregar texto de copyright, etc. en las imágenes antes de mostrarlas.

Hago esto cuando tengo imágenes de alta resolución que no quiero que todos obtengan, y que el manejador http reduzca la escala de la imagen y la coloque en algún texto de copyright. ¡Genial!


La carpeta App_Data es una carpeta especial reservada para datos como archivos de bases de datos, etc., y NO procesará ningún contenido en la web. Esto es por diseño, e intencional y no se puede cambiar (que yo sepa).

Sus imágenes definitivamente no pertenecen a la subcarpeta App_Data : póngalas en una carpeta /images o algo más apropiado.


Las imágenes nunca deben almacenarse en la carpeta App_Data . Esto está reservado para los archivos que nunca deben entregarse directamente al usuario, como los archivos de base de datos .mdb, etc.

Me gustaría crear una carpeta /Resources o /Resources/Images fuera de la raíz del sitio.


Los contenidos de la carpeta App_Data se pueden servir pero no directamente.
El acceso directo no es posible e indirecto no es recomendable. Es intencional

Sin embargo, agregar una ruta virtual puede hacer esto. Ver esta question


Creo que las tres mejores respuestas sirven para tu propósito.
Almacene las imágenes en la carpeta de recursos, ya sea global o local, también son carpetas especiales y se puede acceder a los contenidos mediante programación.