15. januar 2004 - 08:40Der er
8 kommentarer og 1 løsning
Hjælp til filsystem, der skal billeder med på!
Nu er det sådan at jeg har lavet en side der kan vise mapper og filer i en bestemt mappe. Nu vil jeg også godt ligge et billede til de fil navne jeg har valgt.
"jpg,txt,bmp,gif,mdb,doc,dot,rtf,ans,xls" <--- det er de filer jeg har valgt ind til videre. Jeg har også billederne til dem, men kan ikke få siden til at ligge det billede på siden som passer til forskellige filtyper.
Her er hele koden:
<%
sti = "/download" ShowSub = sti & request("ShowSub") ShowSubLink = request("ShowSub") strPathInfo = ShowSub strPhysicalPath = Server.MapPath(strPathInfo)
Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFolder = objFSO.GetFolder(strPhysicalPath)
For each Folder in objFolder.SubFolders If Left(Folder.Name,1)<>"_" Then Response.Write "<a href=""" & CurFile & "?ShowSub=" & ShowSubLink & "/" Response.Write(Replace(Folder.Name, " ", "%20")) response.write """>" Response.Write "<img border='0' src='/sider/pics/bag/folder2.gif' width='15' height='13'> " Response.Write Folder.Name Response.Write "<br>" End if Next
Set objFSO = Nothing
sti = "/download" ShowSub = sti & request("ShowSub") ShowSubLink = request("ShowSub") strPathInfo = ShowSub strPhysicalPath = Server.MapPath(strPathInfo)
Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFolder = objFSO.GetFolder(strPhysicalPath)
If ShowSub > " " then ShowSub = ShowSub strPhysicalPath = Server.MapPath(ShowSub) Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFolder = objFSO.GetFolder(strPhysicalPath) Set objFolderContents = objFolder.Files
Response.Write "<table width='100%'>"
For Each fil in objFolderContents if InStr(1,"jpg,txt,bmp,gif,mdb,doc,dot,rtf,ans,xls", LCase(objFSO.GetExtensionName(fil.name))) > 0 then arrayBuild = arrayBuild & fil.name & "|" end if next if arrayBuild <> "" then arrayBuild = left(arrayBuild, (len(arrayBuild) - 1))
myArray = Split(arrayBuild, "|") antalBillederPrSide = 20 maxCols = 2 noCols = 0 start = Request.Querystring("start") if start = "" then start = 0 Antalsider = int(ubound(myarray) / antalBillederPrSide) for i = start to (start + antalBillederPrSide-1) if not i > ubound(myarray) then if noCols = 0 then Response.Write "<tr>" Response.write "<td>" Response.Write "<a href=""" & ShowSub & "/" & myArray(i) &""" target='_blank' title='" & myArray(i) & "'>" & left(myArray(i), 15) & ".....</a>" Response.write "</td>" noCols = noCols + 1 if noCols = maxCols then noCols = 0 Response.Write "</tr>" end if else nesteside = 1 end if Next if noCols > 0 then Response.Write "</tr>" response.write "<tr><td colspan=""3"">" if start <> 0 then response.write "<a href=""" & siteName & "?start=" & (start - antalBillederPrSide) & "&ShowSub="& request("ShowSub") & """>Forrige</a>" end if response.write(" ") if nesteside <> 1 then response.write "<a href=""" & siteName & "?start=" & (start + antalBillederPrSide) & "&ShowSub="& request("ShowSub") & """>Næste</a>" end if response.write "</td></tr>"
Nu er det sådan at jeg gerne vil have den side til at hentet de billede filer et andet sted, da de ikke skal vises som download links på siden.
Du kan se her http://hhx.madox.dk hvordan siden virker. De billede iconer jeg har skal så vises ud fra hver af de filer man kan download når man har trykke sig ind i en mappe.
Meningen med den side er at man kan downloade forskellige filer, men jeg vil gerne gøre det letter ved at der også kommer et billede den filtype der nu bliver fundet i mappe.
Dine billeder (gif.gif, jpg.gif osv) ligger et andet sted på din server ? fint nok ... så kan du jo bare referere direkte til dem, hvis du ved hvor de ligger (noget jeg regner med at du gør):
Okay, nu er jeg lost... Den kommer med en fejl som ser sådan her ud:
Microsoft VBScript runtime error '800a01b6'
Object doesn't support this property or method: 'GetExtentionName'
/sider/extra/xdownloadfil.asp, line 61
Sådan er ser koden ud nu!
For Each fil in objFolderContents if InStr(1,"jpg.gif,txt.gif,bmp.gif,gif.gif,mdb.gif,doc.gif,dot.gif,rtf.gif,ans.gif,xls.gif", LCase(objFSO.GetExtensionName(fil.name))) > 0 then arrayBuild = arrayBuild & fil.name & "|" end if next if arrayBuild <> "" then arrayBuild = left(arrayBuild, (len(arrayBuild) - 1))
myArray = Split(arrayBuild, "|") antalBillederPrSide = 20 maxCols = 2 noCols = 0 start = Request.Querystring("start") if start = "" then start = 0 Antalsider = int(ubound(myarray) / antalBillederPrSide) for i = start to (start + antalBillederPrSide-1) if not i > ubound(myarray) then if noCols = 0 then Response.Write "<tr>" Response.write "<td>" Det er linje 61--> strImage = "<img src=""/sider/pics/ico/" & LCase( objFSO.GetExtentionName( myArray(i) ) ) & ".gif"" border=""0"">" Response.Write "<a href=""" & ShowSub & "/" & myArray(i) &""" target='_blank' title='" & myArray(i) & "'>" & strImage & " " & left(myArray(i), 15) & ".....</a>" Response.write "</td>" noCols = noCols + 1 if noCols = maxCols then noCols = 0 Response.Write "</tr>"
og til sidst skifter du farve ved at legge til en 'if' lige inden 'next':
if( bgColor = "red" ) then bgColor = "green" else bgColor = "red" end if
Så kommer det til at se nogenlunde sådan ud:
bgColor = "red" for i = start to (start + antalBillederPrSide-1) if not i > ubound(myarray) then if noCols = 0 then Response.Write "<tr>" Response.write "<td bgcolor=""" & bgColor & """>" ... if( bgColor = "red" ) then bgColor = "green" else bgColor = "red" end if next
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.