Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] просмотр каталога на WEB сервере

Ответить
Настройки темы
VBS/WSH/JS - [решено] просмотр каталога на WEB сервере

Аватара для Дивер

Новый участник


Сообщения: 8
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изменения
Автор: Дивер
Дата: 16-02-2013
Товарищи, сильно не пинайте если не туда пишу))) Нужна помощь специалиста.

Суть проблемы:
Есть файл default.asp. В этом файле код VBScript. Я заливаю этот файл в каталог на сервере IIS. Открываю ссылку в браузере и у меня отображается список файлов в текущей директории. Но! Помимо всего прочего, отображается сам файл default.asp и web.config. Хотелось бы сделать так, чтобы в этом файле можно было явно указывать какие расширения файлов не отображать в списке (например не отображать файлы *.asp, *.config и пр.).

сам файл default.asp


как это выглядит сейчас:
Смотреть

Отправлено: 16:01, 15-02-2013

 

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата Дивер:
сам файл default.asp »
Ссылка недоступна.

Отправлено: 05:35, 16-02-2013 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Дивер

Новый участник


Сообщения: 8
Благодарности: 0

Профиль | Отправить PM | Цитировать


Поправил. В ссылке по ошибке 2 раза http написал))

Отправлено: 10:23, 16-02-2013 | #3


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


1. «On Error Resume Next» — не самый правильный выбор. Обработки ошибок я нигде в коде не увидел. Тогда — смысл? Или выкиньте, или уж обрабатывайте возможные ошибки.

2. Например добавьте в код простейшее:
Код: Выделить весь код
…
<%
   ''''''''''''''''''''''''''''''''''''''''
   ' output the file list
   ''''''''''''''''''''''''''''''''''''''''

   Set objCollection = objFolder.Files

   For Each objItem in objCollection
      strName = objItem.Name
      
      Select Case LCase(strName)
          Case "default.asp", "web.config"
              ' Nothing to do
          Case Else
              ' Здесь Ваш код по выводу файлов
                strFile = Server.HTMLEncode(Lcase(strName))
          
                intSizeB = objItem.Size
                intSizeK = Int((intSizeB/1024) + .5)
                intSizeM = Int((intSizeB/1024/1024) + .5)
                … и так далее
      End Select

Отправлено: 15:48, 16-02-2013 | #4


Аватара для Дивер

Новый участник


Сообщения: 8
Благодарности: 0

Профиль | Отправить PM | Цитировать


код работает, но как-то странно.. "задваивает" другие файлы. Посмотреть.
В колонке тип файла все равно отображает тип файла asp и config, но вместо имени подставляет название предыдущего файла.

Вот кстати оригинал файла на сайте мелкомягких. В нем я поменял дизайн и выкинул пару колонок. Может конечно своими кривыми ручёнками еще что выкинул нужное))

Могу предоставить хост для теста файла если нужно.

Отправлено: 12:28, 17-02-2013 | #5


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата Дивер:
Вот кстати оригинал файла на сайте мелкомягких. »
Теперь понятно, откуда «Resume Next», который они вставляют куда ни попадя, и своеобразная методика получения расширения файла.

Этот оригинальный файл нормально отрабатывал, без удвоения?

Попробуйте так:
читать дальше »
Код: Выделить весь код
<%@LANGUAGE="VBSCRIPT"%>
<%
   Option Explicit
   On Error Resume Next

   ' this section is optional - it just denies anonymous access
   If Request.ServerVariables("LOGON_USER")="" Then
      Response.Status = "401 Access Denied"
   End If

   ' declare variables
   Dim objFSO, objFolder
   Dim objCollection, objItem

   Dim strPhysicalPath, strTitle, strServerName
   Dim strPath, strTemp
   Dim strName, strFile, strExt, strAttr
   Dim intSizeB, intSizeK, intAttr, dtmDate

   ' declare constants
   Const vbReadOnly = 1
   Const vbHidden = 2
   Const vbSystem = 4
   Const vbVolume = 8
   Const vbDirectory = 16
   Const vbArchive = 32
   Const vbAlias = 64
   Const vbCompressed = 128

   ' don't cache the page
   Response.AddHeader "Pragma", "No-Cache"
   Response.CacheControl = "Private"

   ' get the current folder URL path
   strTemp = Mid(Request.ServerVariables("URL"),2)
   strPath = ""

   Do While Instr(strTemp,"/")
      strPath = strPath & Left(strTemp,Instr(strTemp,"/"))
      strTemp = Mid(strTemp,Instr(strTemp,"/")+1)      
   Loop

   strPath = "/" & strPath

   ' build the page title
   strServerName = UCase(Request.ServerVariables("SERVER_NAME"))
   strTitle = "Contents of the " & strPath & " folder"

   ' create the file system objects
   strPhysicalPath = Server.MapPath(strPath)
   Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
   Set objFolder = objFSO.GetFolder(strPhysicalPath)
%>
<html>
<head>
<title><%=strServerName%> - <%=strTitle%></title>
<meta name="GENERATOR" content="The Mighty Hand of Bob">
<style>
BODY  { BACKGROUND: #cccccc; COLOR: #000000;
        FONT-FAMILY: Arial; FONT-SIZE: 10pt; }
TABLE { BACKGROUND: #000000; COLOR: #ffffff; }
TH    { BACKGROUND: #0000ff; COLOR: #ffffff; }
TD    { BACKGROUND: #ffffff; COLOR: #000000; }
TT    { FONT-FAMILY: Courier; FONT-SIZE: 11pt; }
</style>
</head>
<body>

<h1 align="center"><%=strServerName%><br><%=strTitle%></h1>
<h4 align="center">Please choose a file/folder to view.</h4>

<div align="center"><center>
<table width="100%" border="0" cellspacing="1" cellpadding="2">
<tr>
   <th align="left">Name</th>
   <th align="left">Bytes</th>
   <th align="left">KB</th>
   <th align="left">Attributes</th>
   <th align="left">Ext</th>
   <th align="left">Type</th>
   <th align="left">Date</th>
   <th align="left">Time</th>
</tr>

<%
   ''''''''''''''''''''''''''''''''''''''''
   ' output the folder list
   ''''''''''''''''''''''''''''''''''''''''

   Set objCollection = objFolder.SubFolders

   For Each objItem in objCollection
      strName = objItem.Name
      strAttr = MakeAttr(objItem.Attributes)      
      dtmDate = CDate(objItem.DateLastModified)
%>
<tr>
   <td align="left"><b><a href="<%=strName%>"><%=strName%></a></b></td>
   <td align="right">N/A</td>
   <td align="right">N/A</td>
   <td align="left"><tt><%=strAttr%></tt></td>
   <td align="left"><b><DIR></b></td>
   <td align="left"><b>Directory</b></td>
   <td align="left"><%=FormatDateTime(dtmDate,vbShortDate)%></td>
   <td align="left"><%=FormatDateTime(dtmDate,vbLongTime)%></td>
</tr>
<% Next %>

<%
   ''''''''''''''''''''''''''''''''''''''''
   ' output the file list
   ''''''''''''''''''''''''''''''''''''''''

   Set objCollection = objFolder.Files

   For Each objItem in objCollection
      strName = objItem.Name
      
      Select Case LCase(strName)
          Case "default.asp", "web.config"
              ' Nothing to do
          Case Else
            strFile = Server.HTMLEncode(Lcase(strName))
            
            intSizeB = objItem.Size
            intSizeK = Int((intSizeB/1024) + .5)
            If intSizeK = 0 Then intSizeK = 1
            
            strAttr = MakeAttr(objItem.Attributes)
            strName = Ucase(objItem.ShortName)
            If Instr(strName,".") Then strExt = Right(strName,Len(strName)-Instr(strName,".")) Else strExt = ""
            dtmDate = CDate(objItem.DateLastModified)
%>
<tr>
   <td align="left"><a href="<%=strFile%>"><%=strFile%></a></td>
   <td align="right"><%=FormatNumber(intSizeB,0)%></td>
   <td align="right"><%=intSizeK%>K</td>
   <td align="left"><tt><%=strAttr%></tt></td>
   <td align="left"><%=strExt%></td>
   <td align="left"><%=objItem.Type%></td>
   <td align="left"><%=FormatDateTime(dtmDate,vbShortDate)%></td>
   <td align="left"><%=FormatDateTime(dtmDate,vbLongTime)%></td>
</tr>
<%      End Select
 Next %>

</table>
</center></div>

</body>
</html>
<%
   Set objFSO = Nothing
   Set objFolder = Nothing

   ' this adds the IIf() function to VBScript
   Function IIf(i,j,k)
      If i Then IIf = j Else IIf = k
   End Function

   ' this function creates a string from the file atttributes
   Function MakeAttr(intAttr)
      MakeAttr = MakeAttr & IIf(intAttr And vbArchive,"A","-")
      MakeAttr = MakeAttr & IIf(intAttr And vbSystem,"S","-")
      MakeAttr = MakeAttr & IIf(intAttr And vbHidden,"H","-")
      MakeAttr = MakeAttr & IIf(intAttr And vbReadOnly,"R","-")
   End Function
%>
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:51, 17-02-2013 | #6


Аватара для Дивер

Новый участник


Сообщения: 8
Благодарности: 0

Профиль | Отправить PM | Цитировать


Отлично! Работает! По Вашему примеру перенес "End Select" и в файле моей "редакции" тоже все заработало как надо!
Огромное Вам спасибо, что нашли время мне помочь! Очень выручили меня!

Отправлено: 20:56, 17-02-2013 | #7


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Рад был помочь (в меру компетенции ). Заходите ещё.

Отправлено: 21:26, 17-02-2013 | #8



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] просмотр каталога на WEB сервере

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
V. 2007 - Просмотр удаленных писем на сервере exchange malkinfedor Microsoft Exchange Server 8 08-09-2011 12:18
FreeBSD - Просмотр логов посещения Web ресурсов, запрет доступа в интернет CnyH9I Общий по FreeBSD 11 02-09-2010 07:34
[решено] Создание записи о WEB-Сервере на сервере DNS FATruden Microsoft Windows NT/2000/2003 7 28-09-2009 16:36
просмотр терминального сеанса на сервере и под правами? nuklejn Microsoft Windows NT/2000/2003 3 27-10-2007 23:05
[решено] Перечитывание содержимого каталога на файловом сервере выполнятся долго _Daemon_ Microsoft Windows NT/2000/2003 25 15-11-2005 09:58




 
Переход