08. februar 2005 - 00:02Der er
11 kommentarer og 1 løsning
Billedprojekt ASP
Hejsa NG.
Jeg tænker så det knager, hør her hvorfor:
Jeg har en masse billeder. Disse billeder ligger i forskellige mapper. Hver mappe har dens eget navn. Alle billeder under hver mappe har navn efter mappen med 1, 2, 3, 4 osv. efter.
Jeg skal have lavet sådan: Bruger klikker på "Galleri". Brugeren kommer til SIDE 1 som lister alle navne på mapperne f.eks:
Fugle Bjørne Heste Ford Mercedes Hund Kaktus osv.
Når brugeren så klikker på et navn skal SIDE 2 vise alle billeder under mappen. F.eks
Hvordan laver jeg det bedst med en access database?
Jeg har tænkt på bare at sætte dem ind i en tabel der hedder "Galleri" f.eks:
navn pic Mercedes mercedes1.jpg Mercedes mercedes2.jpg Mercedes mercedes3.jpg Mercedes mercedes4.jpg Mercedes mercedes5.jpg Hund hund1.jpg Hund hund2.jpg Hund hund3.jpg Hund hund4.jpg Hund hund5.jpg osv. Men det dur jo ikke. For når brugeren så klikker på Galleri og SIDE 1 lister navnene på de forskellige kategorier, lister den jo f.eks Mercedes 5 gange hvor den kun skal gøre det én gang.
Nu håber jeg ikke det lyder alt for dumt, måske er det den sene tid, eller også tænker jeg forkert. Men nogle gode forslag til opbygningen af dette inden jeg går i gang? (helst uddybet)
database er en løsning hvor det jamiros skriver er den rigtige løsning - umiddelbart ville jeg bare mene at det er et ufatteligt tungt arbejde at poste alle de data ind i databasen.
Vha FSO (filescriptingobject) kan du læse mapper og billeder og så slipper du helt og aldeles for en masse kedeligt db-arbejde.
Jeg har faktisk en kode med FSO. Det giver mig dog to problemer med denne kode:
1) Jeg kan ikke få den til at acceptere en Request.QueryString("id"). 2) Jeg kan ikke få den til at vise 4 billeder på en linie og dernæst skifte til ny linie.
Kommer i tanke om, der skal jo på en eller anden måde kobles en database på, da mappe navne er f.eks "The_Sea_Inside", men titlen der skal vises på listen under galleri skal jo være "The Sea Inside". Det skal jo så komme fra et database kald, der også angiver i FSO hvilken mappe billederne ligger i.
Koden er én jeg har fundet på nettet. Kan ikke huske hvor.
<%
' Dim rsFSO, strPath ' strPath = Server.MapPath("\sti\") ' Set rsFSO = kc_fsoFiles(strPath, "_")
Function kc_fsoFiles(theFolder, Exclude) Dim rsFSO, objFSO, objFolder, File Const adInteger = 3 Const adDate = 7 Const adVarChar = 200
'create an ADODB.Recordset and call it rsFSO Set rsFSO = Server.CreateObject("ADODB.Recordset")
'Open the FSO object Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
'go get the folder to output it's contents Set objFolder = objFSO.GetFolder(theFolder)
'Now get rid of the objFSO since we're done with it. Set objFSO = Nothing
'create the various rows of the recordset With rsFSO.Fields .Append "Name", adVarChar, 200 .Append "Type", adVarChar, 200 .Append "DateCreated", adDate .Append "DateLastAccessed", adDate .Append "DateLastModified", adDate .Append "Size", adInteger .Append "TotalFileCount", adInteger End With rsFSO.Open()
'Now let's find all the files in the folder For Each File In objFolder.Files
'hide any file that begins with the character to exclude If (Left(File.Name, 1)) <> Exclude Then rsFSO.AddNew rsFSO("Name") = File.Name rsFSO("Type") = File.Type rsFSO("DateCreated") = File.DateCreated rsFSO("DateLastAccessed") = File.DateLastAccessed rsFSO("DateLastModified") = File.DateLastModified rsFSO("Size") = File.Size rsFSO.Update End If
Next
'And finally, let's declare how we want the files 'sorted on the page. In this example, we are sorting 'by File Type in descending order, 'then by Name in an ascending order. rsFSO.Sort = "Type DESC, Size ASC "
'Now get out of the objFolder since we're done with it. Set objFolder = Nothing
'now make sure we are at the beginning of the recordset 'not necessarily needed, but let's do it just to be sure. rsFSO.MoveFirst() Set kc_fsoFiles = rsFSO
End Function
'Now let's call the function and open the recordset on the page 'the folder we will be displaying Dim strFolder : strFolder = Server.MapPath("\newspics\")
'the actual recordset we will be creating with the kc_fsoFiles function Dim rsFSO 'now let's call the function and open the recordset
'we will exclude all files beginning with a "_" Set rsFSO = kc_fsoFiles(strFolder, "_")
'now we'll create a loop and start displaying the folder 'contents with our recordset. Of course, this is just a 'simple example and not very well formatted, i.e., not in 'a table, but it gets the point across on how you can 'ouput the recordset on the page. While Not rsFSO.EOF %> <p><img src="../newspics/<%= rsFSO("Name").Value %>"> | <%= rsFSO("Name").Value %> | <%= rsFSO("Type").Value %></p> <% 'and let's move to the next record rsFso.MoveNext() Wend
'finally, close out the recordset rsFSO.close() Set rsFSO = Nothing %>
når du hiver navnene ud kan du replace _ med mellemrum og så slipper du stadig for databasen.
for at få billederne vist 4 af gangen er du nødt til at indsætte det i en tabel i stedet - i dit loop skriver du så bare <td>'billedkode</td> og for hver 4 gang indsætter du </tr><tr> og så får du det ønskede resultat.
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.