25 votes

Les images qui se trouvent dans le dossier App_Data ne sont pas affichées dans le navigateur

Lorsque je définis la propriété URL de l'image sur le contrôle d'image asp qui se trouve dans le dossier App_Data, l'image s'affiche dans la vue de conception de la page mais pas dans le navigateur.

Cela semble être simple, mais l'image ne s'affiche pas.

47voto

marc_s Points 321990

Le dossier App_Data est un dossier spécial réservé aux données telles que les fichiers de base de données, etc., et ne rendra PAS de contenu sur le web. Cela est intentionnel et ne peut pas être modifié (pour autant que je sache).

Vos images ne doivent absolument pas être placées dans le sous-dossier App_Data - placez-les dans un dossier /images ou quelque chose de plus approprié.

11voto

Chris Ballance Points 17329

Les images ne doivent jamais être stockées dans le dossier App_Data. Ce dossier est réservé aux fichiers qui ne doivent jamais être servis directement à l'utilisateur, tels que les fichiers de base de données .mdb, etc.

Je créerais un dossier /Resources ou /Resources/Images à la racine du site.

5voto

Terje Points 21

Je ne suis pas d'accord. En cachant les images dans le dossier App_Data et en créant votre propre gestionnaire http, vous sécurisez vos images et pouvez ajouter du texte de copyright, etc. sur les images avant de les afficher.

Je fais cela lorsque j'ai des images haute résolution que je ne veux pas que tout le monde obtienne, et en ayant le gestionnaire http redimensionner l'image et y mettre du texte de copyright. Génial !

3voto

Wim ten Brink Points 12422

D'accord, il est temps de faire l'impossible ... Bien que vous ne puissiez pas charger des images directement à partir du dossier app_data, vous pouvez écrire votre propre gestionnaire http qui lira le fichier image du dossier app_data et le renverra au client. Ce serait une solution de contournement mais en général, les données sont destinées à être lues uniquement par votre application. En ayant un gestionnaire qui lit les données, vous pouvez quand même renvoyer ces images.

Mais c'est une mauvaise pratique et si vous travailliez pour moi, vous seriez immédiatement viré !!!

2voto

Andreas Krohn Points 301

Cela dépend! ;)

Il y a de bonnes raisons de sauvegarder des images dans App_Data. Dans les situations où vos utilisateurs peuvent télécharger leurs fichiers ou logos, cela protégera ces fichiers et ne les rendra pas accessibles à d'autres utilisateurs ou au public.

Le plus important, c'est le seul moyen d'avoir des fichiers différents par serveur/instance de déploiement.

Lors du déploiement de votre application, vous pouvez protéger ces fichiers téléchargés par les utilisateurs par instance de serveur en activant "Exclure les fichiers de App_Data" dans votre configuration de déploiement.

Si vous souhaitez accéder à ces fichiers par URL, utilisez un gestionnaire de téléchargement, downloadfile.ashx par exemple.

J'espère que cela vous aidera.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X