Avatar billede kokholm Nybegynder
29. juli 2002 - 11:25 Der er 44 kommentarer og
2 løsninger

auto oprettelse af side med billeder

Hej...
Jeg leder efter følgende.

Et link (billede af et camera) som på en eksisterende asp-side oprettes hvis der findes en folder/bibliotek med samme ID som emnet.
Herudover en asp-side som henter billederne ind  fra den pågældende folder.
Navn og antal af billeder kendes ikke på forhånd.
Billedtypen er altid jpg.

Hvem er mand/kvinde som kan lave det ?
Avatar billede Slettet bruger
29. juli 2002 - 11:51 #1
Avatar billede ras2000 Nybegynder
29. juli 2002 - 14:26 #2
Du skal have gang i noget der hedder FileSystemObject. Der kan du specificere hvilken sti der skal søges i efter hvilken folder, og så hente samtlige filer i folderen ind. Men det er lidt svært at forklare, uden at vide noget om hvordan dit bibliotek er lavet. Her er der en der laver lidt af det samme, præv at klippe klistre lidt af det, så kan du nok stille nogle mere specifikke spørgsmål.
http://www.eksperten.dk/spm/237083
Avatar billede kokholm Nybegynder
30. juli 2002 - 14:10 #3
ezolu >  dit bud ser unægteligt meget spændende ud.
Er der nogen som kan være lidt mere behjælpelig ? - Helst i form af noget kode, da jeg ikke lige kan gennemskue hvordan.
Avatar billede ras2000 Nybegynder
30. juli 2002 - 14:44 #4
Jeg kan godt lave det du vil have, men jeg er nød til at have flere oplysninger før jeg kan hjælpe dig, derfor min forrige kommentar.
Du siger du har et ID på en folder/bibliotek. Er det et navn på en folder? Hvor ligger den folder i forhold til din asp side? Ligger alle disse foldere/biblioteker i samme nivea, eller er de spredt over serveren?
Avatar billede ras2000 Nybegynder
30. juli 2002 - 15:01 #5
Denne side laver f.eks en liste af alle foldere og filer i mappen billeder, som ligger i samme niveau som asp siden der indeholder koden. Er det noget af den stil du skal bruge?
Avatar billede ras2000 Nybegynder
30. juli 2002 - 15:01 #6
ups
<%
sti = Server.Mappath("billeder")
Set fso = Server.CreateObject("Scripting.FileSystemObject")
set folder = fso.Getfolder(sti)
for each mappe in folder.subfolders
    response.write mappe.name & "<br>"
    for each fil in mappe.files
        response.write "&nbsp;&nbsp;" & fil.name & "<br>"
    next
next
%>
Avatar billede kokholm Nybegynder
31. juli 2002 - 14:32 #7
Hej ras2000...

Jeg skal forsøge at beskrive det hele lidt nærmere.

Jeg har en eksisterende asp-side (oversigt.asp) som lister nogle emner op med et link til en anden asp-side (detalje.asp) hvori emnet vises med udførlige oplysninger.
Hvert emne har et ID (primærnøgle) i en Access-database.
Billeder har jeg normalt liggende i et bibliotek "Foto".
Nu vil jeg gerne i biblioteket "Foto" kunne oprette underbiblioteker med diverse ID som navn.
Inde fra min detalje.asp vil jeg gerne have der fremkommer et link hvis der eksisterer et underbibliotek med samme navn som det valge emnes ID.
Dette link skal bringe os over på en asp-side ( lad os blot kalde den billed.asp), hvor de billeder som der ligger i det pågældende valgte emnes bibliotek, indlæses og vises.

Øh ? - fik du fat i bare lidt af det ?
Det gik vist hen og blev mere forvirrende end forklarende.
Avatar billede ras2000 Nybegynder
31. juli 2002 - 14:51 #8
Nejnej, jeg er helt med.
Først skal du tjekke om der er en underfolder i Foto, som har samme navn som rs("id"), jeg går udfra at du har lavet et udtræk af din database og lagt det i et recordset der hedder rs, og at ID'et ligger i en kolonne som har feltnavnet "id". Altså:
sti = Server.Mappath("Foto")
Set fso = Server.CreateObject("Scripting.FileSystemObject")
Do while not rs.eof
  if FolderExists(sti & rs("id")) then
    response.write "<a href='billed.asp?folder=" & rs("id") & "'>link</a>
  else
    response.write "der er ingen floder der hedder " & rs("id")
  end if
loop
Avatar billede ras2000 Nybegynder
31. juli 2002 - 14:56 #9
Derefter skal du have lavet din billed.asp
sti = Server.Mappath(request.querystring("folder") & "Foto")
Set fso = Server.CreateObject("Scripting.FileSystemObject")
set folder = fso.Getfolder(sti)
for each fil in folder.files
  reponse.write "<img src='Foto/" & request.querystring("folder") & "/" & fil.name & "'>
next
Avatar billede kokholm Nybegynder
02. august 2002 - 13:42 #10
Hej ras2000...
Det ser rigtig spændende ud det som du har lavet der.
Jeg vil prøve om jeg kan få det til at virke. Er lidt usikker med hensyn til begyndelsen sti = Server.Mappath("Foto")?
Destinationen på folderen Foto er: F:\website\Foto
Er du herinde og kigge i weekenden ?
Avatar billede ras2000 Nybegynder
02. august 2002 - 13:50 #11
Nej, kun hverdage. Hvis man i en asp-side skriver Response.write Server.MapPath("Foto") og der vel at mærke er en folder der hedder Foto i samme niveau som asp-siden, så vil den skrive den hårde sti til mappen Foto, altså F:\inetPub\wwwroot\foldernavn\Foto, eller hvad det nu er. Du skal bruge den hårde sti (frem for den relative) i getFolder/File kommandoerne.
Avatar billede kokholm Nybegynder
02. august 2002 - 14:49 #12
Gider du kigge om jeg har fattet det rigtigt.
Jeg vil nemlig utroligt gerne have det op at køre hurtigst muligt.

tien til folderen Foto er som bekendt F:\Website\Foto

detalje.asp

<%
sti = "F:\Website\Foto"
Set fso = Server.CreateObject("Scripting.FileSystemObject")
Do while not oversigt.eof
  if FolderExists(sti & oversigt("ID")) then
    response.write "<a href='billed.asp?folder=" & oversigt("ID") & "'>Flere fotos</a>
  else
    response.write "der er ingen fotos af emnet nr. " & oversigt("ID")
  end if
loop
%>


Nedenstående er jeg imidlertid meget i tvivl om
Du skrev at jeg skulle bruge den direkte sti til folderen men hvorhenne

billed.asp


<%
sti = Server.Mappath(request.querystring("folder") & "Fotos")
Set fso = Server.CreateObject("Scripting.FileSystemObject")
set folder = fso.Getfolder(sti)
for each fil in folder.files
  reponse.write "<img src='Foto/" & request.querystring("folder") & "/" & fil.name & "'>
next
%>
Avatar billede ras2000 Nybegynder
02. august 2002 - 14:51 #13
sti = Server.Mappath(request.querystring("folder") & "Fotos")
skulle sørge for at den kommer med. Har du prøvet at lave siderne?
Avatar billede kokholm Nybegynder
02. august 2002 - 15:39 #14
Jeg har lavet siderne nu men jeg får fejlen
Unterminated string constant i linien:
response.write "<a href='billed.asp?folder=" & oversigt("ID") & "'>Flere fotos</a>
Avatar billede Slettet bruger
02. august 2002 - 15:43 #15
Prøv at rette =" & oversigt("ID") & "' til '" & oversigt("ID") & "'
Avatar billede Slettet bruger
02. august 2002 - 15:46 #16
Undskyld - hvis det er et tal, så ret det til = " & oversigt("ID") & ">Flere...
Avatar billede kokholm Nybegynder
02. august 2002 - 15:58 #17
nu har jeg prøvet
Response.Write "<a href='billed.asp?folder=" & oversigt("ID") & ">Klik her for flere billeder</a>
men får stadig fejlen Unterminated string constant. :-(
Avatar billede Slettet bruger
02. august 2002 - 16:03 #18
Du mangler en " efter </a>
Avatar billede kokholm Nybegynder
02. august 2002 - 16:11 #19
Åh nej weekenden skulle da vist være begyndt for flere timer siden.

Nu får jeg nemlig fejlen Type mismatch: 'FolderExists' i linien
if FolderExists(sti & oversigt("ID")) then
Avatar billede kokholm Nybegynder
05. august 2002 - 11:47 #20
Hvad er årsagen til denne Type mismatch: 'FolderExists' i linien
if FolderExists(sti & oversigt("ID")) then

Har det noget med at et foldernavn er tekst og ID i db er et tal ? eller hvor er det lige det går galt ?
Avatar billede kokholm Nybegynder
05. august 2002 - 15:47 #21
ras2000 & ezolu >

Hjælp - i har vel ikke opgivet mig helt.
Jeg vil så gerne have det her til at virke.
Avatar billede ras2000 Nybegynder
06. august 2002 - 09:43 #22
Undskyld der skal stå:
if fso.FolderExists(sti & oversigt("ID")) then
Jeg har lige haft weekend.
Avatar billede kokholm Nybegynder
06. august 2002 - 13:06 #23
Åh pyh tak skal du have ras2000.
Jeg var lige ved at tro i havde opgivet mig.

Jeg har rettet linien, men når jeg forsøger at køre min detalje.asp munder den efter lang tids venten ud i en timeout fejl.
Hvad skyldes det ?
Kan den ikke finde folderen ? ( jeg afprøver ellers med en folder som eksisterer ).
Avatar billede ras2000 Nybegynder
06. august 2002 - 13:08 #24
Det er her:

Do while not oversigt.eof
  if FolderExists(sti & oversigt("ID")) then
    response.write "<a href='billed.asp?folder=" & oversigt("ID") & "'>Flere fotos</a>
  else
    response.write "der er ingen fotos af emnet nr. " & oversigt("ID")
  end if
loop

Der skal der stå:

Do while not oversigt.eof
  if FolderExists(sti & oversigt("ID")) then
    response.write "<a href='billed.asp?folder=" & oversigt("ID") & "'>Flere fotos</a>
  else
    response.write "der er ingen fotos af emnet nr. " & oversigt("ID")
  end if
  oversigt.movenext
loop
Avatar billede kokholm Nybegynder
06. august 2002 - 14:04 #25
Jeg har tilføjet oversigt.movenext men nu kommer den med flg fejl.

Error Type:
(0x80020009)
Exception occurred.
/detalje.asp, line 724

Linien den henviser til er den første linie efter vor ovenstående kode hvor jeg igen anvender et felt fra databasen. ( oversigt("beskrivelse")
Avatar billede ras2000 Nybegynder
06. august 2002 - 14:08 #26
Så skal du have en oversigt.movefirst efter ovenstående kode. Det kan være den så kommer med en helt ny fejl, der er noget med at recordsettet skal åbnes på en speciel måde, hvis du vil bevæge dig frit op og ned i en tabel. Hvis du får en ny fejl, så læg lige den kode du benytter til at åbne tabellen ind, så må vi se om jeg kan rette den til.
Avatar billede kokholm Nybegynder
06. august 2002 - 14:41 #27
Tak for din tålmodighed ras2000.

Jeg har kopieret div kode ind nedenfor.
Kort fortalt er det ønsket at kunne trække div. oplysninger ud af databasen - herefter køre vor lille fotokode link - og igen forsætte med at trække nogle oplysninger ud af databasen.

DIM Conn, MySQL, oversigt
    'Open The Connection To the DataBase
    Set Conn = Server.CreateObject("ADODB.Connection")
    DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=F:\Website\data\Emne.mdb"
    Conn.Open DSN

MySQL = "SELECT * FROM Emner WHERE [LNr] ='" & Request.Querystring("ID") &"'"
    SET oversigt = Conn.Execute(MySQL)

sti = "F:\Website\Fotos"
Set fso = Server.CreateObject("Scripting.FileSystemObject")
Do while not oversigt.eof
  if fso.FolderExists(sti & oversigt("ID")) then
    Response.Write "<a href='billed.asp?folder=" & oversigt("ID") & ">Klik her for flere billeder</a>"
  else
    Response.Write "Der er ingen fotos af emnet nr. " & oversigt("ID")
  end if
  oversigt.movefirst
loop

Håber du kan trylle det sammen.
Avatar billede ras2000 Nybegynder
06. august 2002 - 15:11 #28
Prøv denne her:
DIM Conn, MySQL, oversigt
Set Conn = Server.CreateObject("ADODB.Connection")
    DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=F:\Website\data\Emne.mdb"
    Conn.Open DSN
    set oversigt = Server.CreateObject("ADODB.Recordset")

MySQL = "SELECT * FROM Emner WHERE [LNr] ='" & Request.Querystring("ID") &"'"
    oversigt.Open sql, Conn, 3, 3

I stedet for denne her:
DIM Conn, MySQL, oversigt
    'Open The Connection To the DataBase
    Set Conn = Server.CreateObject("ADODB.Connection")
    DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=F:\Website\data\Emne.mdb"
    Conn.Open DSN

MySQL = "SELECT * FROM Emner WHERE [LNr] ='" & Request.Querystring("ID") &"'"
    SET oversigt = Conn.Execute(MySQL)

Så skulle du have mulighed for at bevæge dig begge veje i recordsettet.
Avatar billede kokholm Nybegynder
07. august 2002 - 00:17 #29
ras2000>Jeg har nu indsat dit forslag til at åbne databasen med.
Det afstedkommer flg. fejlmelding:

Error Type:
ADODB.Recordset (0x800A0BB9)
Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another.
/detalje.asp, line 18

Line 18 er linien:
oversigt.Open sql, Conn, 3, 3
Avatar billede ras2000 Nybegynder
07. august 2002 - 10:04 #30
Hovsa, der skulle jo stå
Avatar billede ras2000 Nybegynder
07. august 2002 - 10:04 #31
oversigt.Open MySQL, Conn, 3, 3
Avatar billede kokholm Nybegynder
07. august 2002 - 12:18 #32
Nu tør jeg snart slet ikke skrive det...

Nu er vi tilbage hvor den kommer med fejl i linie 724 som tidligere

Error Type:
(0x80020009)
Exception occurred.
Avatar billede ras2000 Nybegynder
07. august 2002 - 12:46 #33
Jamen så må der jo være noget andet galt. Det er lidt svært at gætte hvad det er der sker uden at have det selv. Der er et felt der hedder "beskrivelse"?
Avatar billede kokholm Nybegynder
07. august 2002 - 13:03 #34
Hej,
Jeg har prøvet at udkommentere vores foto-kode og så læses siden altså fint ind. Den nye Databaseforbindelse er altså ok...
Men... -det ser altså stadig ud til at den ikke kan lide at jeg henter nogle felter fra databasen efter vores fotokode.
Heriblandt oversigt("beskrivelse")
Vi det være en hjælp om jeg lister koden som bruges op en gang til ?
Avatar billede ras2000 Nybegynder
07. august 2002 - 13:08 #35
Nej den står her jo allerede. Men du siger at nogle af felterne er den ikke så glade for. Du ved vel at det er case sensitive? Prøv evt med oversigt(n) hvor n er kolonne-tallet, 0 er første kolonne, 1 er anden kolonne osv. Det skal stå uden pinger (""'').
Ellers kan det være at du behandler en streng som et tal, el. lign.
Avatar billede kokholm Nybegynder
07. august 2002 - 13:35 #36
Øh - jamen siden læser skam fint nok alle felter ind.
Den har iøvrigt fungeret fint i omkring et par år.
Den virker bare ikke når vi forsøger at afvikle foto-koden som "vi" har lavet sammen.
Jeg har en fornemmelse af at det er løkken vi kører i fotokoden der er årsag til at jeg ikke kan få lov til at hente flere databasefelter ind på siden bagefter. Kan det ikke godt tænkes at være der fejlen ligger.
Avatar billede ras2000 Nybegynder
07. august 2002 - 13:42 #37
Det skulle det ikke have. Men du kan jo prøve at hive to recordsets ind, en til foto halløjet, og en til resten. Så skulle de jo ikke kunne genere hinanden.
DIM Conn, MySQL, oversigt
Set Conn = Server.CreateObject("ADODB.Connection")
    DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=F:\Website\data\Emne.mdb"
    Conn.Open DSN
    set oversigt = Server.CreateObject("ADODB.Recordset")

MySQL = "SELECT * FROM Emner WHERE [LNr] ='" & Request.Querystring("ID") &"'"
    oversigt.Open MySQL, Conn, 3, 3
    foto.Open MySQL, Conn, 3, 3
Avatar billede ras2000 Nybegynder
07. august 2002 - 13:43 #38
Hov, følgende skal også ændres
DIM Conn, MySQL, oversigt, foto
Set Conn = Server.CreateObject("ADODB.Connection")
    DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=F:\Website\data\Emne.mdb"
    Conn.Open DSN
    set oversigt = Server.CreateObject("ADODB.Recordset")
    set foto = Server.CreateObject("ADODB.Recordset")
Avatar billede kokholm Nybegynder
07. august 2002 - 14:56 #39
Jubiii nu kan siden indlæses inkl. fotokode.
Den skriver godt nok linket som tekst istedet for, men det er nok blot et tegn som mangler i linien.
Response.Write "<a href='billed.asp?folder=" & foto("LNr") & ">Klik her for flere billeder</a>"

Mht. billed.asp så kommer der en fejl "path not found" i linie 10 : set folder = FSO.Getfolder(sti)

ras2000> Du fortjener s.. snart nogle flere point end de udlovede.
Avatar billede ras2000 Nybegynder
07. august 2002 - 15:06 #40
Response.Write "<a href='billed.asp?folder=" & foto("LNr") & ">Klik her for flere billeder</a>"
skal rettes til
Response.Write "<a href='billed.asp?folder=" & foto("LNr") & "'>Klik her for flere billeder</a>"
Avatar billede ras2000 Nybegynder
07. august 2002 - 15:10 #41
sti = Server.Mappath(request.querystring("folder") & "Foto")
Skal (vistnok) ændres til
sti = Server.Mappath("Foto/" & request.querystring("folder"))
Avatar billede kokholm Nybegynder
07. august 2002 - 15:32 #42
Microsoft VBScript runtime (0x800A01A8)
Object required: ''
/billed.asp, line 12:

reponse.write "<img src='Fotos/" & request.querystring("folder") & "/" & fil.name & "'>"
Avatar billede ras2000 Nybegynder
07. august 2002 - 15:35 #43
Lille stavefejl:
reponse.write "<img src='Fotos/" & request.querystring("folder") & "/" & fil.name & "'>"
Skal ændres til
response.write "<img src='Fotos/" & request.querystring("folder") & "/" & fil.name & "'>"
Avatar billede kokholm Nybegynder
07. august 2002 - 22:45 #44
Ras2000> Tusind tak for din store indsats. Nu virker det !
Hvad skal jeg skrive således at den kun viser jpg-filer ?
Og kan jeg få lavet det således at jeg inde på billed.asp siden kan trække emnets navn m.v. frem som overskrift på siden ? oversigt("ID") osv. Skal jeg oprette et nyt spørgsmål til dig om det, så du kan få nogle flere point ?

ezolu> Du skal skam også, om ikke have mange point, så dog alligevel have nogle for din hjælp også.
Avatar billede ras2000 Nybegynder
08. august 2002 - 09:00 #45
Hvis du laver et nyt spørgsmål til det seneste er jeg fuldt ud tilfreds. Jeg kan dog røbe at du kan få den til at skrive jpg filerne med en lille if sætning:
If Right(fil.name, 3) = "jpg" or Right(fil.name, 4) = "jpeg" then
Response.write "<img ...
end if
Prøv lige at se om du ikke selv kan få det til at virke, ellers post det som et nyt spørgsmål. Rimeligt simpelt, højst 30 point.
Avatar billede kokholm Nybegynder
08. august 2002 - 11:11 #46
Ras2000>
Jeg har oprettet spørgsmålene på http://www.eksperten.dk/spm/244153
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