#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>