Tilretning af Photoindex
Jeg bruger nedenstående kode til visning af billeder på en intranetserver. Jeg vil høre om der er nogle der kan hjælpe mig med at tilrette dem lidt så den bliver endnu bedre. Det har ikke været muligt at finde en nyere version af koden på nettet, derfor prøver jeg af denne vej. Det skal siges at jeg har prøvet at få hjælp tidligere via Eksperten til netop dette problem.Det jeg kunne ønske mig tilføjet er følgende:
1. En mulighed for at angive hvormange rækker og kolonner der skal være på en side. Tilføjes i config.inc filen. Det betyder at der selvfølgelig også skal være frem og tilbage pile.
2. En mulighed for at klikke på en knap der laver et printindex af siden.
Koden er oprindeligt lavet af Elad Rosenberg og jeg tror ikke jeg generer nogle, hvis jeg beder om hjælp til at forbedre den en smule.
Her er et link til hvor nedenstående kode kan downloades:
http://hjem.get2net.dk/abm/myimages.zip
Jeg har ingen ændringer lavet i filerne, så man skal huske at ændre placering m.m. i config.inc filen.
Håber der er nogle der har løst til at hjælpe, jeg er sikker på at andre også vil kunne få gavn af det.
*****
Jeg syntes generelt det er rigtig godt og har brugt det i mange år efterhånden. Den eneste store ulempe er at hvis der er mange billeder i mappen tager det tid at læse alle filerne derfor ønsket om at kunne bestemme antal rækker og kolonner. Og så udskrivning af et "kontaktark".
*****
**Start********************config.inc*******************************Start**
<%
'myImages - Elad Rosenberg March 2001
'-------------------------------------
'asp photo album
'-------------------------------------
'see the readme.txt before using
'-------------------------------------
option explicit
dim ForReading
dim objFSO
dim objNewFile
dim pathToTxt
dim MyString
dim basePath
dim Bvpath
dim howManyPicsInRow
dim widthImage
dim heightImage
dim headFontSize
'---------- configuration (see the readme for more details) --------
basePath = "f:/inetpub/wwwroot/elad/myimages/"
Bvpath = "http://nyx/elad/myimages/images/"
'how many images per row
howManyPicsInRow = 3
'small pictures sizes
widthImage = 100
heightImage = 75
'header font size
headFontSize = 18
'--------------------------------------------------------------------
'read the header file function
function readTextFile(pathToTxt)
'set file - for reading
ForReading=1
set objFSO = server.createobject("scripting.FileSystemobject")
'open the text file
set objNewFile = objFSO.OpenTextFile(pathToTxt, ForReading)
'loop over the file until the end
do while not objNewFile.AtEndOfStream
'read line
MyString = MyString & objNewFile.ReadLine & "<br>"
loop
readTextFile = MyString
End function
%>
**Slut********************config.inc*******************************Slut**
**Start********************index.asp*******************************Start**
<!--#include file="config.inc"-->
<style>
BODY
{
BACKGROUND-COLOR: white;
}
a
{
color:blue;text-decoration:none;
}
a:hover
{
color:red;text-decoration:underline;
}
td
{
font-size:15px;
}
.header
{
font-size:<%=headFontSize%>px;
}
</style>
<%
'decleration
dim folderName 'Folder Name
dim fso ' File System Object
dim fldr ' folder object
dim objFile
dim lastFolder
dim pathToFile
dim f 'file Object
dim i,o,p 'counters
dim buildFolders
dim imageUrl
dim sf 'sub Folders
dim f1 'files in sub folder
dim vpath ' virtual path
dim result
dim blnImages
dim imgFolderFlag
dim x
'-----------------------------------------
'the folder name from queryString
folderName = request.queryString("folderName")
'security
blnImages = split(folderName,"\")
if folderName <> "" then
for x = 0 to ubound(blnImages)
if blnImages(x) = "images" then
imgFolderFlag = true
exit for
end if
next
if imgFolderFlag <> true then
response.write "<center>You are not authorized to view the files</center>"
response.end
end if
end if
if folderName="" then
call getFilesByFolder(basePath,"images")
else
call getFilesByFolder(folderName,"")
end if
sub getFilesByFolder(Bpath,folderName)
'file System Object
Set fso = CreateObject("Scripting.FileSystemObject")
Set fldr = fso.GetFolder(Bpath & folderName)
response.write "<table align=center width='80%' border=0><tr>"
i=0
'loop over files
For Each objFile in fldr.Files
'split to get file name
objFile = split(objFile,"\")
lastFolder = ubound(objFile)
'file size
pathToFile = Bpath & folderName & "\" & objFile(lastFolder)
Set f = fso.GetFile(pathToFile)
'arrange pictures in a table
if objFile(lastFolder) = "header.txt" then
response.write "<div align=center>Folder <b>"& objFile(lastFolder-1) & "</b> description:</b><br>" & readTextFile(Bpath & folderName & "\header.txt") & "<br></div>"
else
response.write "<td align=center>"
if objFile(lastFolder)<> "folder.gif" then
'counter for pictures
i = i + 1
vpath = split(Bpath,"\")
'converting to virtual path to display image
for o = 0 to ubound(vpath)
if vpath(o) = "images" then
exit for
end if
next
for p = o+1 to ubound(vpath)
buildFolders = buildFolders & vpath(p) & "/"
next
imageUrl = Bvpath & buildFolders
response.write "<a href='" & imageUrl & objFile(lastFolder) & "'><img src='" & imageUrl & objFile(lastFolder) & "' width="&widthImage & " height="& heightImage & " border=0><br>" & "<a href='" & imageUrl & objFile(lastFolder) & "'>" & objFile(lastFolder)
if f.name<>"folder.gif" then
response.write "<b></a> (" & mid(f.size,1,2) & "K" & ")</b>"
end if
response.write "</td>"
end if
end if
buildFolders = ""
'3 pictures in <tr>
result = i mod howManyPicsInRow
if i > howManyPicsInRow-1 and result=0 then
response.write "</td></tr>"
end if
next
if i<>"" or i<>0 then
response.write "</table><center><b>"& i & "</b> files were found<br><br><br></center>"
else
response.write "</table><center><b>No files were found<br><br><br><a href='#' onclick=history.go(-1)>back</a></center>"
end if
response.write "<table align=center width='80%' border=0><tr><td>"
response.write "<tr><td><b>Browse Folders:</b></td></tr><tr><td>"
'sub folders
Set sf = fldr.SubFolders
For Each f1 in sf
response.write"<img src=images/folder.gif> " & "<a href='index.asp?folderName="& f1.path &"'>" & f1.name & "</a><br>"
Next
response.write "<br><a href='#' onclick=history.go(-1)>back</a>"
response.write "</td></tr></table>"
end sub
%>
**Slut********************index.asp*******************************Slut**