Классический ASP открытый каталог на сервере

#asp-classic

#asp-classic

Вопрос:

Я хочу открыть каталог, который находится на сервере, через ссылку. Моя проблема в том, что он отлично работает на странице .htm, но не на странице .asp. Вот что я использую:

 <a href="file://server/folder/folder/folder" target="_blank">Foldername</a>
  

Я пытался использовать 3 или 5 косых черт после файла: но тот же результат.
Другая вещь, которую я нашел без результата, это:

 <a href="file://server/folder/folder" onclick="window.open(this.href, 'popupwindow', 'width=400,height=300,scrollbars,resizable'); return false;">Link</a>
  

После попытки разобраться в html я попробовал следующее в asp:

 <%
str_url="file://server/folder/folder"
Response.Write("<script>") 
Response.Write("window.open('" amp; str_url amp; "', 'myWin','height=800,width=1024,status=yes,toolbar=yes,menubar=yes,location=yes,resizable=yes,scrollbars=yes');") 
Response.Write("</script>")
%>
  

Но после нескольких попыток заставить вещи работать, я все еще бьюсь головой о стену. Может ли это быть отключенной функцией в IIS7? Или я что-то упускаю?

Заранее спасибо

Ответ №1:

Ссылки в стиле file:// будут работать только на вашем локальном компьютере, вы не можете открыть папку на удаленном сервере, используя этот метод. (ну, если только этот путь не доступен с вашего локального компьютера, общего ресурса сервера или чего-то подобного)

Комментарии:

1. Спасибо за ответ. Вы случайно не знаете способ заставить его работать или это единственный вариант просто поместить ссылки на страницу .htm?

2. Вы можете настроить FTP на своем сервере, и ссылки будут указывать на папки, доступные через FTP, в противном случае вам потребуется использовать FileSystemObject в ASP для программного чтения папок и отображения содержимого папки в формате HTML. Вы также можете включить просмотр каталогов в IIS, что позволит вам указать на папку, содержащую файлы, и иметь к ним доступ только для чтения.

3. Спасибо за указания, о них еще не думал. Я буду работать над вашими идеями, посмотрим, какое решение является лучшим. И если все остальное не сработает, я просто размещу ссылки в другом разделе сайта.

Ответ №2:

Несколько примеров кода для отображения каталога:

 <table cellspacing="0">
    <tr>
        <th style="width: 25px">amp;nbsp;</th>
        <th>Document</th>
        <th style="width: 60px">Size</th>
    </tr>
    <%
    Dim iCounter, iFileSize
    Dim oFS, oFL
    Dim sDirectory

    sDirectory = "directory/you/want"
    iCounter = 0

    Set oFS = Server.CreateObject("Scripting.FileSystemObject")
    Set oFL = oFS.GetFolder(Server.MapPath(sDirectory))

    For Each oF In oFL.Files
        iCounter = iCounter   1

        iFileSize = FormatNumber(CLng(oF.Size) / 1024 / 1024, 2)
    %>
    <tr>
        <td><%=iCounter %>.</td>
        <td><a href="<%=sDirectory %>/<%=oF.Name %>" target="_blank"><%=oF.Name %></a></td>
        <td><%=iFileSize %> MiB</td>
    </tr>
    <%
    Next
    %>
</table>