|
-
May 1st, 2001, 08:28 AM
#1
Thread Starter
Addicted Member
Hard Q? Generating a list of documents(as hyperlinks) in a folder
Hi Guys
I have a an ASP page that calls an activeX dll that I wrote. The user selects a few choices on the form on my ASP page and presses submit. This then calls the dll and generates reports in the form of html documents in a folder on the webserver.
Now what I want to be able to do is produce a list of the names of the files that I create in a type of list box or even just a list of hyperlinks on a web page. Can someone please let me know how to go about sorting out a problem like this.
Thanks
JK
-
May 1st, 2001, 08:41 AM
#2
Hyperactive Member
This will give you a list of all files in a specified directory, this isn't something i wrote but it may do what ya need:
Code:
<%@ language = VBScript %>
<%
'--------------------------------------------------------------------------------------------
' LisFiles.Asp
'
' By Herman Liu
'
' This ASP is to list the files under a designated directory ready for download. File names
' are streamlined in uniform upper and lower cases, and sorted in an ascending order. Page
' navigational buttons will avail themselves when there are more than one pages, and will be
' appropriately updated as and when the user switches between pages, e.g. either "Next" or
' "Previous" if there are only two pages, additional "First" and/or "Last" if more than two.
' During browsing, a user can select any file for download by clicking on its name.
'
'--------------------------------------------------------------------------------------------
%>
<%
Option Explicit
On Error Resume Next
Response.buffer = true
DIM objFSO, objFolder, objFilesInFolder
DIM arrFiles(), mFileCount, mPageSize, mPageNo, mPageCount
DIM mDirPath, mFileSpec, mFile, mTemp
DIM mServerName
DIM i, j, k, s0, s1
DIM mformPage, mformCtl, mformCtlVal
Dim mDownloadDir, mHttpPath
' Change as appropriate to your needs
mPageSize = 8
' Change to the actual directory name you have
mDownloadDir = "Music"
' mDownloadDir should be one subdirectory down from where this page resides, e.g.
' if this page is on C:\InetPub\Wwwroot, your dir is C:\InetPub\Wwwroot\Downloads.
' The page should of course be in a directory that is defined as the home
' or a virtual directory.
mDirPath = server.mapPath(".") & "\" & mDownloadDir
'-----------------------------------------------
' Following the earlier remarks, if C:\Inetpub\wwwroot is home directory,
'and this page is in C:\InetPub\Wwwroot, the URL should be
'-----------------------------------------------
mHttpPath = "/" & mDownloadDir & "/"
'-----------------------------------------------
' but if this page is not in the home or a virtual directory
'(e.g,. on PWS, the page may be in C:\InetPub\Webpub but C:\Inetpub\wwwroot is
'defined as the home directory), then you need to adjust:
'-----------------------------------------------
' mHttpPath = "/WebPub/" & mDownloadDir & "/"
' Instances of object
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(mDirPath)
Set objFilesInFolder = objFolder.Files
mFileCount = objFilesInFolder.Count
IF mFileCount = 0 Then
Response.write "No file available for download yet."
Set objFSO = Nothing
Set objFolder = Nothing
Set objFilesInFolder = Nothing
Response.End
End If
mPageCount = INT(mFileCount \ mPageSize)
IF ( mFileCount Mod mPageSize) > 0 THEN
mPageCount = mPageCount + 1
End If
' Test the existence of a control on form. If exists, its name should
' have been wrapped up in HTTP header, since our form uses POST method.
mformPage = Request.Form("HiddenPage")
If mformPage <> "" Then
IF mPageCount > 1 Then
mPageNo = Cint(mformPage)
' Test the values returned. The unselected ones would have
' the pattern of "xxx" and the selected one "xxx, xxx".
For Each mformCtl In Request.Form
mformCtlVal = Request.Form(mformCtl)
IF mformCtlVal = "First, First" Then
mPageNo = 1
Exit For
ElseIf mformCtlVal = "Previous, Previous" Then
mPageNo = mPageNo - 1
Exit For
ElseIf mformCtlVal = "Next, Next" Then
mPageNo = mPageNo + 1
Exit For
ElseIf mformCtlVal = "Last, Last" Then
mPageNo = mPageCount
Exit For
End if
Next
Else
mPageNo = 1
End If
Else ' First run
mPageNo = 1
End If
' Two dimension array, for File Name and Size columns (entry for Description
' column not provided here)
ReDim arrFiles(mFileCount-1, 1)
' Store file name, size info to array
i = 0
For Each mFile In objFilesInFolder
' First char upper, rest lower case, for display purposes only
mTemp=UCASE(LEFT(mFile.Name,1)) & LCASE((RIGHT(mFile.Name, LEN(mFile.Name) -1)))
arrFiles(i, 0) = mTemp
' Fill file size
arrFiles(i, 1) = mFile.Size
i = i + 1
Next
' Sort array by file name
For i = 0 To UBOUND(arrFiles)-1
k = i
s0 = arrFiles(i, 0)
s1 = arrFiles(i, 1)
For j = i + 1 To UBound(arrFiles)
If StrComp(arrFiles(j, 0), s0, vbTextCompare) < 0 Then
s0 = arrFiles(j, 0)
s1 = arrFiles(j, 1)
k = j
End If
Next
arrFiles(k, 0) = arrFiles(i, 0)
arrFiles(k, 1) = arrFiles(i, 1)
arrFiles(i, 0) = s0
arrFiles(i, 1) = s1
Next
%>
<HTML>
<HEAD>
<TITLE> List of files for download </TITLE>
<META http-equiv="Content-Type"; Content="text/html; Charset=iso-8859-1">
</HEAD>
<BODY bgcolor="#ccffff">
<%'<IMAGE SRC="LisFiles.gif" VSPACE=2 HSPACE=15 ALIGN=CENTER> %>
<P align = "Center">
<FONT COLOR="Black" FACE="ARIAL" SIZE="4"> <B> List of Files </B> </FONT> <BR>
<BR>
<FONT FACE="ARIAL" SIZE="1"> <B> Total: <%= cStr(mFileCount) %>
files. Page <%=Cstr(mPageNo) %> of
<%=Cstr(mPageCount) %> page(s). </B></FONT>
<BR> <BR></p>
<TABLE CELLPADDING=6 ALIGN=CENTER CELLSPACING=0 BORDER=1>
<TR> <TH ALIGN=CENTER><B>   File Name </B></TH> <TH ALIGN=CENTER>Bytes</TH></TR>
<%
k = (mPageNo - 1) * mPageSize
j = 0
FOR i = k To mFileCount -1
'-------------------------------------------------------------------
' To form an URL which will be used as an anchor tag for file name
'-------------------------------------------------------------------
mTemp = mHttpPath & arrFiles(i, 0)
%>
<TR><TD><A HREF="<%=mTemp%>"> <%=arrFiles(i,0)%> </A> <BR></TD>
<TD ALIGN=CENTER> <%=arrFiles(i,1)%> <BR></TD>
<%
j = j + 1 ' Count to control the max
IF j = mPageSize then ' j is zero-based
Exit For
End If
Next
' Fill up one page with blanks
DO WHILE j < mPageSize
%>
<TR><TD> <BR></TD> <TD> <BR></TD> </TR>
<%
j = j + 1
LOOP
%>
</TABLE>
<P Align = "Center">
<FORM NAME="UpdPage" ACTION="LisFiles.asp" METHOD="POST">
<INPUT TYPE="HIDDEN" NAME="HiddenPage" VALUE="<%=cstr(mPageNo)%>">
<INPUT TYPE="HIDDEN" NAME="OfFirst" VALUE="First" STYLE="ALIGN=CENTER; WIDTH=70; COLOR=MAROON;">
<INPUT TYPE="HIDDEN" NAME="OfPrevious" VALUE="Previous" STYLE="ALIGN=CENTER; WIDTH=70; COLOR=MAROON;">
<INPUT TYPE="HIDDEN" NAME="OfNext" VALUE="Next" STYLE="ALIGN=CENTER; WIDTH=70; COLOR=MAROON;">
<INPUT TYPE="HIDDEN" NAME="OfLast" VALUE="Last" STYLE="ALIGN=CENTER; LEFT=10; WIDTH=70; COLOR=MAROON;">
<% IF mPageCount>1 Then %>
<% If mPageNo=1 Then %>
<INPUT TYPE="SUBMIT" ALIGN=CENTER NAME="OfNext" VALUE="Next" STYLE="ALIGN=CENTER; WIDTH=70; COLOR=MAROON;">
<% If mPageCount>2 Then %>
<INPUT TYPE="SUBMIT" ALIGN=CENTER NAME="OfLast" VALUE="Last" STYLE="ALIGN=CENTER; WIDTH=70; COLOR=MAROON;">
<% End If %>
<% ElseIf mPageNo=mPageCount Then %>
<% If mPageCount>2 Then %>
<INPUT TYPE="SUBMIT" ALIGN=CENTER NAME="OfFirst" VALUE="First" STYLE="ALIGN=CENTER; WIDTH=70; COLOR=MAROON;">
<% End If %>
<INPUT TYPE="SUBMIT" ALIGN=CENTER NAME="OfPrevious" VALUE="Previous" STYLE="ALIGN=CENTER; WIDTH=70; COLOR=MAROON;">
<% ElseIf mPageNo>1 And mPageNo<mPageCount Then %>
<% If mPageCount>2 Then %>
<INPUT TYPE="SUBMIT" ALIGN=CENTER NAME="OfFirst" VALUE="First" STYLE="ALIGN=CENTER; WIDTH=70; COLOR=MAROON;">
<% End If %>
<INPUT TYPE="SUBMIT" ALIGN=CENTER NAME="OfPrevious" VALUE="Previous" STYLE="ALIGN=CENTER; WIDTH=70; COLOR=MAROON;">
<INPUT TYPE="SUBMIT" ALIGN=CENTER NAME="OfNext" VALUE="Next" STYLE="ALIGN=CENTER; WIDTH=70; COLOR=MAROON;">
<% If mPageCount>2 Then %>
<INPUT TYPE="SUBMIT" ALIGN=CENTER NAME="OfLast" VALUE="Last" STYLE="ALIGN=CENTER; WIDTH=70; COLOR=MAROON;">
<% End If %>
<% End If %>
<% End If %>
</FORM>
<P Align = "Center"><%= FormatDateTime(Date, 1) %>
</BODY>
</HTML>
<%
Set objFSO = Nothing
Set objFolder = Nothing
Set objFilesInFolder = Nothing
Response.End
%>
VB6.0 SP4
Windows 2000
I'm thinking of a number between
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|