Question

Quand je mets propriété URL de l'image à asp contrôle d'image qui est dans le dossier App_Data, l'image montre en vue de la conception de la page, mais pas dans le navigateur.

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

Il semble être simple, mais il ne montre pas l'image.

Était-ce utile?

La solution

Le dossier App_Data est un dossier spécial réservé à des données telles que les fichiers de base de données et ainsi de suite, et PAS rendre à tout contenu sur le web. Ceci est par la conception et intentionnelle et ne peut pas être changé (pour autant que je sache).

Vos images ne font certainement pas dans le sous-dossier App_Data - les mettre dans un dossier /images ou quelque chose de plus approprié

.

Autres conseils

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

Je voudrais créer un dossier /Resources ou /Resources/Images de la racine du site.

Je suis en désaccord. Lorsque cacher les images dans le dossier App_Data et créer votre propre gestionnaire http sécuriser vos images et pouvez ajouter etc. texte du droit d'auteur sur les images avant de les montrer.

Je le faire quand j'ai images haute résolution, je ne wan't tout le monde pour obtenir, et ayant le gestionnaire http downscale l'image et mettre sur certains copyrighttext. Super!

D'accord, le temps de faire l'impossible ... Alors que vous ne pouvez pas charger des images directement à partir du dossier App_Data, vous pouvez écrire votre propre gestionnaire http qui va lire le fichier image à partir du dossier App_Data et l'envoyer au client. Ce serait un travail autour, mais en général, les données est destiné aux données que seule votre application peut lire. En ayant un gestionnaire de lecture des données, vous pouvez toujours retourner ces images.

Mais il est une mauvaise pratique et si vous travaillez pour moi, vous seriez tiré immédiatement !!!

Cela dépend! ;)

Il y a de bonnes raisons pour enregistrer les images dans App_Data. Dans les situations où les utilisateurs peuvent télécharger leurs fichiers ou logos, il protégera ces fichiers et ne pas les rendre accessibles à d'autres utilisateurs ou être public.

Le plus important, c'est la seule façon d'avoir différents fichiers 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 la « Exclure les fichiers de App_Data » dans votre configuration de déploiement.

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

Hope this helps.

Contenu de dossier App_Data peuvent être servis mais pas directement.
Accès direct est impossible et indirecte n'est pas recommandé. Il est intentionnel.

cependant l'ajout d'un chemin virtuel peut le faire. Voir cette


Je pense que les trois premiers réponse sert votre but.
Stocker des images dans le dossier des ressources soit ce sont globaux ou locaux aussi des dossiers et des contenus spéciaux sont accessibles programaticaly.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top