25. december 2003 - 18:50Der er
10 kommentarer og 1 løsning
ny side hvis der kommer for mange resultater.
Nu er det sådan at jeg har være herinde før og fået rigtig meget hjælp men er nu kommet dertil hvor jeg ikke hvad hvordan jeg skal nu gøre det...
Da jeg har være herinde og fået hjælp til at lave en side i asp der gik ind og fandt alle de mapper der er i mit download mappe og derefter hvis man trykket på en af mapperne, kommer man ind i den og ser alle de forskellige filer man kan downloade.
Nu er det bare sådan at jeg gerne vil have det lavet så det kommer op i en table hvor der er 3 rækker med 9 kolonner. Og hvis der er mere en 27 mapper/filer kommer der et link hvor man kan trykke til næste side og se resten.
Nu har jeg prøvet at lavet det selv og med hjælp herinde fra... Men intet har virkede ind tilvider. Derfor er der 200 poin denne gang.
Dette script laver et link til hver enkelt mappe, opdelt i 3 rækker med 9 kolonner, og hvis der er flere end 27 mapper bliver der paget til en side mere..
Scriptet er testet, men kig på det om det virker. Du skal kun ændre i hvilken mappe du vil se på:
<% ImageDir = "../../" ' Mappen med filerne Kun denne linie skal ændres. Set objFS = CreateObject("Scripting.FileSystemObject") Set objFolder = objFS.GetFolder(Server.MapPath(ImageDir)) Set objFiles = objFolder.SubFolders
intPage = Request.Querystring("page") If isNumeric(intPage) = False Or intPage < 1 Then intPage = 1 End If
intPageSize = 27 ' Antal filer på hver side intImgCount = objFiles.Count intPageCount = -Int(-(intImgCount/intPageSize))
Response.Write "<p><strong>" & intImgCount & " Foldere - " Response.Write "viser side " & intPage & " af " & intPageCount & ":</strong></p>" response.write "<table>" i = 0 For Each FolderObject In objFiles if i mod 3 = 0 then response.write "<tr>" end if response.write "<td>" intFile = intFile +1 If (intFile >= ((intPage-1)*intPageSize)+1) And (intFile =< (intPageSize*intPage)) Then If Left(FolderObject.Name,1)<>"_" Then Response.Write "<a href=""" & CurFile & "?ShowSub=" & ShowSubLink & "/" Response.Write(Replace(FolderObject.Name, " ", "%20")) response.write """>" Response.Write FolderObject.Name End if
End If response.write "</td>" if i mod 3 = 2 then response.write "</tr>" end if i = i+1 Next
strScriptName = Request.Servervariables("ScriptName") Response.Write "<p>Gå til side " For i = 1 To intPageCount Response.Write "<a href=" & strScriptName & "?page=" & i & ">" & i & "</a> " Next Response.Write "</p>" Set objFS = Nothing %>
<% ImageDir = "../../" ' Mappen med filerne Kun denne linie skal ændres. Set objFS = CreateObject("Scripting.FileSystemObject") Set objFolder = objFS.GetFolder(Server.MapPath(ImageDir)) Set objFiles = objFolder.SubFolders
intPage = Request.Querystring("page") If isNumeric(intPage) = False Or intPage < 1 Then intPage = 1 End If
intPageSize = 27 ' Antal filer på hver side intImgCount = objFiles.Count intPageCount = -Int(-(intImgCount/intPageSize))
Response.Write "<p><strong>" & intImgCount & " Foldere - " Response.Write "viser side " & intPage & " af " & intPageCount & ":</strong></p>" response.write "<table><tr>" i = 0 For Each FolderObject In objFiles if i mod 9 = 0 then response.write "<td>" end if intFile = intFile +1 If (intFile >= ((intPage-1)*intPageSize)+1) And (intFile =< (intPageSize*intPage)) Then If Left(FolderObject.Name,1)<>"_" Then Response.Write "<a href=""" & CurFile & "?ShowSub=" & ShowSubLink & "/" Response.Write(Replace(FolderObject.Name, " ", "%20")) response.write """>" Response.Write FolderObject.Name End if
End If response.write "<br>" if i mod 9 = 8 then response.write "</td>" end if i = i+1 Next response.write "</tr></table>" strScriptName = Request.Servervariables("ScriptName") Response.Write "<p>Gå til side " For i = 1 To intPageCount Response.Write "<a href=" & strScriptName & "?page=" & i & ">" & i & "</a> " Next Response.Write "</p>" Set objFS = Nothing %>
På denne måde skulle de gerne stilles op på den måde du siger...
Nu hvor jeg også gerne vil have vist de filer der er i den mappe man nu trykke på, har jeg selv sat en kode ind, som jeg også har fået herfra. Men den kommer med en fejl som ser sådan her ud:
Server.MapPath() error 'ASP 0171 : 80004005' Missing Path /sider/extra/xdownload.asp, line 52 The Path parameter must be specified for the MapPath method.
Når jeg finder line 52 ser den sådan her ud:
strPhysicalPath = Server.MapPath(ShowSub)
Sætter lige hele koden fra siden på her så du kan se hvad der kan være galt:
<% ImageDir = "/download/" ' Mappen med filerne Kun denne linie skal ændres. Set objFS = CreateObject("Scripting.FileSystemObject") Set objFolder = objFS.GetFolder(Server.MapPath(ImageDir)) Set objFiles = objFolder.SubFolders
intPage = Request.Querystring("page") If isNumeric(intPage) = False Or intPage < 1 Then intPage = 1 End If
intPageSize = 27 ' Antal filer på hver side intImgCount = objFiles.Count intPageCount = -Int(-(intImgCount/intPageSize))
Response.Write "<p><strong>" & intImgCount & " Mapper - " Response.Write "viser side " & intPage & " af " & intPageCount & ":</strong></p>" response.write "<table><tr>" i = 0 For Each FolderObject In objFiles if i mod 9 = 0 then response.write "<td>" end if intFile = intFile +1 If (intFile >= ((intPage-1)*intPageSize)+1) And (intFile =< (intPageSize*intPage)) Then If Left(FolderObject.Name,1)<>"_" Then Response.Write "<a href=""" & CurFile & "?ShowSub=" & ShowSubLink & "/" Response.Write(Replace(FolderObject.Name, " ", "%20")) response.write """>" Response.Write FolderObject.Name End if
End If response.write "<br>" if i mod 9 = 8 then response.write "</td>" end if i = i+1 Next response.write "</tr></table>" strScriptName = Request.Servervariables("ScriptName") Response.Write "<p>Gå til side " For i = 1 To intPageCount Response.Write "<a href=" & strScriptName & "?page=" & i & ">" & i & "</a> " Next Response.Write "</p>" Set objFS = Nothing
If ShowSub > " " then ShowSub = Replace(ShowSub, " ", "%20") Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFolder = objFSO.GetFolder(strPhysicalPath) Set objFolderContents = objFolder.Files
For Each fil in objFolderContents if InStr(1,"jpg,txt,asp,bmp,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 = 9 maxCols = 3 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) &""">" & myArray(i) & "</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>"
Jeg gætter på problemet ligger i at der ikke er defineret en showSub. hvis der ikke er det vil den nok lave en fejl i den path.
<% ImageDir = "/download/" ' Mappen med filerne Kun denne linie skal ændres. Set objFS = CreateObject("Scripting.FileSystemObject") Set objFolder = objFS.GetFolder(Server.MapPath(ImageDir)) Set objFiles = objFolder.SubFolders
intPage = Request.Querystring("page") If isNumeric(intPage) = False Or intPage < 1 Then intPage = 1 End If
intPageSize = 27 ' Antal filer på hver side intImgCount = objFiles.Count intPageCount = -Int(-(intImgCount/intPageSize))
Response.Write "<p><strong>" & intImgCount & " Mapper - " Response.Write "viser side " & intPage & " af " & intPageCount & ":</strong></p>" response.write "<table><tr>" i = 0 For Each FolderObject In objFiles if i mod 9 = 0 then response.write "<td>" end if intFile = intFile +1 If (intFile >= ((intPage-1)*intPageSize)+1) And (intFile =< (intPageSize*intPage)) Then If Left(FolderObject.Name,1)<>"_" Then Response.Write "<a href=""" & CurFile & "?ShowSub=" & ShowSubLink & "/" Response.Write(Replace(FolderObject.Name, " ", "%20")) response.write """>" Response.Write FolderObject.Name End if
End If response.write "<br>" if i mod 9 = 8 then response.write "</td>" end if i = i+1 Next response.write "</tr></table>" strScriptName = Request.Servervariables("ScriptName") Response.Write "<p>Gå til side " For i = 1 To intPageCount Response.Write "<a href=" & strScriptName & "?page=" & i & ">" & i & "</a> " Next Response.Write "</p>" Set objFS = Nothing
SiteName = request.servervariables("script_name")
If ShowSub > " " then ShowSub = Replace(ShowSub, " ", "%20") strPhysicalPath = Server.MapPath(ShowSub) Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFolder = objFSO.GetFolder(strPhysicalPath) Set objFolderContents = objFolder.Files
For Each fil in objFolderContents if InStr(1,"jpg,txt,asp,bmp,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 = 9 maxCols = 3 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) &""">" & myArray(i) & "</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 har jeg lige lagt den op for at teste den, og det første virker findt. Men den vil bare stadig ikke vise de filer der ligger i mappe. Du kan se her hvad der ikke sker... :( http://hhx.madox.dk/xdownload.asp
Jeg kan måske flette det ind i en side, som kommer til at ligge til sidst.. Men jeg er ikke sikker på jeg kan overskue at den skal hente foldere og filer samtidig...
Jeg er ikke helt sikker på det kan lade sig gøre...
Synes godt om
Ny brugerNybegynder
Din løsning...
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.