2010-01-05 12 views
1

Je travaille avec deux sites Web différents sur asp.net. Dans le premier projet, je télécharge des images dans un dossier spécifique sous la racine du projet et n'enregistre que le nom de fichier dans la base de données, maintenant j'essaye d'afficher ces images sur une page du second projet. dossier pat absolu mais je n'ai pas pu afficher l'image, même pensé lors de la recherche dans firebug l'image src est correcte src="D:/MyFolder/image.jpg" l'image ne s'affiche pas, probablement parce qu'il ne pointe pas dans le bon répertoire. J'ai également essayé d'utiliser Server.MapPath puis mon emplacement D mais toujours pas de succès.ImageUrl essayant d'afficher une image en dehors de la racine du projet

Je suis sûr que quelqu'un a déjà fait face à la même situation et espérait vraiment avoir un indice pour gérer cela. Merci d'avance

+0

exemple de code serait bien – Jason

Répondre

2

J'ai trouvé ma solution, étrange mais je ne l'ai pas encore attrapée. Les images téléchargées sous un projet peuvent toujours être accédées en utilisant l'URL du projet http://www.yourwebsite.com/images/photo.png maintenant dans le deuxième projet, vous pouvez utiliser référence les images en utilisant cette URL et en concaténant le nom de fichier que je stocke sur la base de données. Je pense que c'est la meilleure solution et sans changer la sécurité d'accès au code qui, je pense, peut apporter d'autres problèmes. En tout cas merci les gars.

+0

+1 pour le suivi et l'explication. (De plus, vous pouvez marquer votre propre réponse comme solution) –

1

Je ne pense pas que vous puissiez servir des fichiers en dehors de votre chemin d'application par défaut. C'est ce qu'on appelle la sécurité d'accès au code. Vous pouvez lire à ce sujet ici:
http://msdn.microsoft.com/en-us/library/930b76w0.aspx

Vous pouvez corriger cela en changeant votre niveau de confiance à haut dans votre web.config:
http://msdn.microsoft.com/en-us/library/tkscy493.aspx

Je ne recommanderais pas le faire pour tout site est accessible de l'extérieur. En fait, selon la manière dont vous hébergez votre application, cette option peut être restreinte.

1

Vous pouvez uniquement "lier" des fichiers qui existent par rapport au même projet ou qui sont hébergés sur un autre site via une URL absolue. Si vous souhaitez traiter des fichiers en dehors de l'application/du site Web (sur disque ou dans une base de données), vous devrez créer un mécanisme permettant au fichier et au fichier binaire de l'écrire dans le navigateur, en définissant le type MIME, etc. mieux fait en utilisant un HttpHandler.

1

Si vous voulez afficher l'image qui ne sont pas dans votre projet (je veux dire qu'il est présent dans un autre projet ou un autre lecteur) il suffit de créer le répertoire virtuel dans IIS

  1. Aller à « Run » , le type inetmgr
  2. Faites un clic droit sur votre projet et ajoutez répertoire virtuel
  3. nom de Give alias et le chemin de sorte qu'il agit comme dossier dans votre projet