webForumDet fria alternativet

Enkelt script för att lista filer som länkar

ASP

16 svar · 7 949 visningar · startad av tstone

Medlem sedan apr. 2001101 inlägg
Frågan#1

Ett enkelt nybörjarskript för att visa filer i en mapp som länkar.
Byt ut ett variabelt värde - så är det klart att köra!

:D Nicklas

Snutten:

<%
'Enkelt script för att lista filer som länkar i ASP
'byt ut "res/" till din mapp!
Dim fs, f, f1, s, sf, mapp
mapp = "res/"
folderspec = (server.mappath(mapp))
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder(folderspec)
Set sf = f.SubFolders
For Each f1 In sf
s = s & f1.name
s = s & vbCrLf
Next
set fso=server.createObject("Scripting.FileSystemObject")
set folder=fso.getFolder(server.mappath(mapp))
for each f1 in folder.files
response.write "<A HREF=" & mapp & f1.name & " TARGET = _blank>" & f1.name & "</A>" & "<br>"
next
%>
Medlem sedan juli 200412 913 inlägg
#2

Herrejävlar. Här söker man igenom halva internet efter ett såhär enkelt och bra skript. Så hittar man det via Google på själva webForum!!! ska börja med att söka här nästa gång...

Medlem sedan maj 200010 687 inlägg
#3

Söker man på Google så kan man i alla fall ha turen att få ett vettigt script. Det här är ganska fulkodat. Ingen indetering och inga objekt stängs efter användning.
Lite kul också att två FSO-objekt öppnas. Fast ena med Server.CreateObject och andra med CreateObject.

Om man är nybörjare så borde man väl förstå att man gör bort sig om man försöker lära ut saker man själv inte kan...

Medlem sedan juli 200412 913 inlägg
#4

jaha... menar du att det inte är nå vidare bra idé att använda det där?! ...*suck* jaja... får väl byta ut det nångång då... letade så länge utan att hitta nåt bara, jobbigt. Hittade massa avancerade saker med upload och grejjer. Men det enda jag vill ha är nåt som listar filer precis som om det vore tillåtet på servern att titta i en katalog som i utforskaren i Windows.

Medlem sedan maj 20018 027 inlägg
#5

Danny skrev:

jaha... menar du att det inte är nå vidare bra idé att använda det där?!

Annars kan du ju utgå från det scriptet för att skapa något liknande som är bättre. De fel som Erik Juhlin pekade på, är ju enkla att korrigera själv. :)

Medlem sedan juli 200412 913 inlägg
#6

Jo det går ju att justera. Men det känns som det är enklare att hitta något färdigt :) Nu vet jag ju lite mer vad man kan söka på.

Medlem sedan sep. 20066 inlägg
#7

Hej, är nybörjare på detta. Har fått scriptet att fungera. Nu undrar jag om man kan lägga till andra parametrar så att man kan visa t ex skapadedatum för filerna? Kan man även dölja suffixen?

Mvh

Peter

Medlem sedan juni 200032 967 inlägg
#8

Eftersom ovanstående script inte är speciellt bra, så:

<%
sFolder = "/mappen_med_filerna_i/"
set oFso = Server.CreateObject("Scripting.FileSystemObject")
set oFolder = oFso.GetFolder(server.mappath(sFolder))
for each oFile in oFolder.files
	response.write "<a href=""" & sFolder & oFile.name & """ target=""_blank"">" & Left(oFile.name, instrrev(oFile.Name, ".") - 1) & "</a> (" & oFile.DateCreated & ")<br>"
next
set oFolder = Nothing
set oFso = Nothing
%>

http://www.devguru.com/technologies/vbscript/14027.asp

Mvh

Medlem sedan sep. 20066 inlägg
#9

Kanon!

Tack för hjälpen

Peter

Medlem sedan sep. 20066 inlägg
#10

Fråga ang. senaste scriptet: hyperlänkarna fungerar inte om filnamnet innehåller skandinaviska tecken. Kan man komma runt detta? Hittade ingen parameter där man kan ställa in så att filens suffix döljs. Kan man göra detta? Går det att få filerna att bli sorterade i alfabetiskt ordning istället för som nu att den yngsta filen visas högst upp i listan? Mvh/Peter

Medlem sedan juni 200032 967 inlägg
#11

hyperlänkarna fungerar inte om filnamnet innehåller skandinaviska tecken. Kan man komma runt detta?

Använd Server.URLEncode() på filnamnet i länken.

Hittade ingen parameter där man kan ställa in så att filens suffix döljs. Kan man göra detta?

Nej, det finns ingen parameter för det, därför löste jag det i koden åt dig. Fungerade inte det?

Går det att få filerna att bli sorterade i alfabetiskt ordning istället för som nu att den yngsta filen visas högst upp i listan?

Då får du nog lägga in dem i en array eller ett recordset och sedan sortera själv. Jag tror inte det finns en sådan funktion i FSO.

Medlem sedan sep. 20066 inlägg
#12

Hej , sorry - visst fungerade att dökja suffixen nu när jag tittar lite närmare på resultatet. Är dock för rudis för att förstå var "Server.URLEncode" skall in i scriptet. Då stupar även nästa funktion - det där med att få filnamnen att bli sorterade i alfabetisk ordning. Kan du möjligtvis hjälpa mig med "Server.URLEncode" i scriptet så vore jag jättetacksam!

Medlem sedan juni 200032 967 inlägg
#13
response.write "<a href=""" & Server.URLEncode(sFolder & oFile.name) & """ target.....
Medlem sedan sep. 20066 inlägg
#14

blir inge riktigt bra det där med Server.URLEncode...
Har lagt in det i scriptet på min sida men det går fortfarande inte att öppna filnamn med å, ä, ö i.

Det kompletta scriptet som jag nu använder på min sida ser ut som följande:

<%
sFolder = "/filer/pressreleaser/"
set oFso = Server.CreateObject("Scripting.FileSystemObject")
set oFolder = oFso.GetFolder(server.mappath(sFolder))
for each oFile in oFolder.files
response.write "<a href=""" & Server.URLEncode(sFolder & oFile.name) & """ target=""_blank"">" & Left(oFile.name, instrrev(oFile.Name, ".") - 1) & "</a> (" & oFile.DateCreated & ")<br>"
next
set oFolder = Nothing
set oFso = Nothing
%>

Medlem sedan juni 200032 967 inlägg
#15

Till att börja med så verkar det som att du har med mappen två gånger. Om asp-filen ligger i samma mapp som filerna som ska laddas hem får du ta bort sFolder ur länken.

Vid närmare eftertanke var det nog ingen bra idé att köra urlencode på hela klabbet.

Får vi se hur din kod ser ut nu, så kanske vi kan hitta något.

edit: där kom koden ja.

Prova följande:

<%
sFolder = "/filer/pressreleaser/"
set oFso = Server.CreateObject("Scripting.FileSystemObject")
set oFolder = oFso.GetFolder(server.mappath(sFolder))
for each oFile in oFolder.files
response.write "<a href=""" & sFolder & Server.URLEncode(oFile.name) & """ target=""_blank"">" & Left(oFile.name, instrrev(oFile.Name, ".") - 1) & "</a> (" & oFile.DateCreated & ")<br>"
next
set oFolder = Nothing
set oFso = Nothing
%>

Jag har alltså lyft ut sFolder ur urlencode.

mvh

Medlem sedan juni 200032 967 inlägg
#16

En annan sak kan ju vara att du nog förresten bara bör köra urlencode på själva filnamnet, och inte med punkt+suffix.

mvh

Medlem sedan sep. 20066 inlägg
#17

Nu verkar allt fungera! Tack ännu en gång. Liten fråga: hur kommer det sig att scriptet inte funkar om man har mellanslag i filnamnen?

Finns det någon bra källa att läsa sig till hur man gör en egen sortering av filerna för att få dem i alfabetisk ordning?

Peter

258 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)