2011-12-23 5 views
3

У меня довольно простая задача - получить файл изображения из виртуальной папки за пределами моего веб-приложения ASP.Net (виртуальная папка находится в корневом каталоге веб-сайта), а затем отобразить его в управление изображением. Я могу получить доступ к виртуальной папке, которая находится на веб-сайте. Вот мой код, которыйИзвлечение файла из виртуальной папки

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
    Dim sourcefile As String = Server.MapPath("~/Common/Images/LAPDPatch.jpg") 
    Image1.ImageUrl = sourcefile 
End Sub 

Что я делаю неправильно?

Хорошо, я был в состоянии понять это:

Solution

Хорошо, я был в состоянии заставить его работать, я использовал неправильный «слэш» характер, я использовал слэш вместо обратная косая черта:

Dim sourcefile As String = Server.MapPath("\VitualFolderName\") & "Images\LAPDPatch.jpg" 

Спасибо всем, кто ответил!

ответ

3

Использование ResolveUrl:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
    'root of currently running app, virtual or not 
    Dim sourcefile As String = Page.ResolveUrl("~/Common/Images/LAPDPatch.jpg") 

    'root of site 
    'Dim sourcefile As String = "/Common/Images/LAPDPatch.jpg" 

    'root of another site 
    'Dim sourcefile As String = "/VirtualDir/Common/Images/LAPDPatch.jpg" 

    Image1.ImageUrl = sourcefile 
End Sub 
+0

Спасибо, это URL-адрес, который ваш код производит «C: \ inetpub \ wwwroot \ MyWebSite \ VirtualFolderName \ Images \ LAPDPatch.jpg" –

+0

Не знал, что вы пытались сделать сначала, см. Обновление. –

+0

Rick Еще раз спасибо, приведенный выше код отлично работает, если виртуальная папка является подпапкой на веб-сайте. Я хочу сделать доступ к виртуальной папке, расположенной в корневом сервере IIS. –

0

Убедитесь, что пользователь, что веб-приложение работает как (возможно, «МИС AppPool \ по умолчанию AppPool» под iis7) имеет доступ к этой папке, он может просто быть NTFS разрешений вещь.

+0

Спасибо, я использовал неправильную косую черту в моем оригинальном посте. –

Смежные вопросы