Avatar billede steckel Nybegynder
15. januar 2004 - 08:40 Der 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>"

    Set objFSO = Nothing
  End if
%>
Avatar billede nute Nybegynder
15. januar 2004 - 10:14 #1
jeg ville have lavet gif'er med navn efter hvilken filtype den skulle representere, fx:

jpg.gif, txt.gif, bmp.gif, gif.gif ... osv.

Derefter ville jeg lave denne linje:

Response.Write "<a href=""" & ShowSub & "/" & myArray(i) &""" target='_blank' title='" & myArray(i) & "'>" & left(myArray(i), 15) & ".....</a>"

om til dette:

strImage = "<img src=""" & ShowSub & "/" & 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>"
Avatar billede steckel Nybegynder
15. januar 2004 - 11:39 #2
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.
Avatar billede nute Nybegynder
15. januar 2004 - 11:47 #3
eh ?! jeg er ikek sikker på at jeg forstår.

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):

strImage = "<img src=""/enEllenAndenFolder/" & LCase( objFSO.GetExtentionName( myArray(i) ) ) & ".gif"" border=""0"">"

/nute
Avatar billede steckel Nybegynder
15. januar 2004 - 11:57 #4
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>"
Avatar billede nute Nybegynder
15. januar 2004 - 12:31 #5
ah ... undskyld. en lille stavelejf. linje 61 skal se sådan ud:

strImage = "<img src=""/sider/pics/ico/" & LCase( objFSO.GetExtensionName( myArray(i) ) ) & ".gif"" border=""0"">"
Avatar billede steckel Nybegynder
15. januar 2004 - 13:39 #6
Okay, Et sidste spørgsmål.. :)
Hvordan får jeg så lavet mine table om så hveranden række har en anden farve??
Avatar billede nute Nybegynder
15. januar 2004 - 13:46 #7
inden loopen starter, skriver du

bgColor = "red"

Derefter skriver du din <td> ud på denne måde:

Response.write "<td bgcolor=""" & bgColor & """>"

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
Avatar billede steckel Nybegynder
15. januar 2004 - 13:49 #8
Kan du så lige gøre så jeg kan give dig din poin... ;)
Og så vil jeg også sige mange tak for hjælpen... ;)
Avatar billede nute Nybegynder
15. januar 2004 - 13:54 #9
det kan jeg da godt ;-)

det var så lidt ... anytime !!

/nute
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester