Automatisch Variablen anpassen

celistef

Grünschnabel
Hallo zusammen
Versuche mich schon seit einiger Zeit mit ASP. Bis jetzt konnte ich mir durch Ideen und Anregungen in diversen Foren selber helfen. Aber jetzt habe ich, nach einigen tagen herum probieren, ein Blackout und hoffe nun auf eure Hilfe. Das ganze sollte eine Bildergalerie werden. Ohne Datenbank, nur durch auslesen aus einem Ordner. Soweit geht das auch:
<%
Set fso = Server.CreateObject("Scripting.FileSystemObject")
Set objFldr = fso.GetFolder(server.mappath("/bilder"))
Set objFileColl = objFldr.Files

For Each file in objFileColl

if instr(lcase(file.Name),".gif") <> 0 OR instr(lcase(file.Name),".jpg") <> 0 OR instr(lcase(file.Name),".jpeg") <> 0 then
Response.Write "<a href='"&file.Name&"'> " & file.Name & "</a><img src="""&("/bilder") &"\" & file.Name &"""><br>"
end if

Next

Set objFldr = Nothing
Set objFileColl = Nothing
Set fso = nothing

%>


Nun sollte das ganze aber links in einer Spalte an die 10 Einträge enthalten und rechts das Bild in gross anzeigen. Und das ohne Frames ca. so (habe ich aus diesem Forum):

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<%
dim pic, bild
pic = Request.QueryString("pic")
select case pic
case 1
bild = "Dies ist der Content von Link 1"
case 2
bild = "Dies ist der Content von Link 2"
case 3
bild = "Dies ist der Content von Link 3"
case else
bild = "Dies ist der Content beim Laden der Seite"
end select
%>

<html>
<head>
<title>Testseite 2</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<table width="75%" border="1">
<tr valign="top">
<td width="16%">&Uuml;bersicht <hr>
<a href="test2.asp?pic=1">Link1</a><br>
<a href="test2.asp?pic=2">Link2</a><br>
<a href="test2.asp?pic=3">Link3</a>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p></td>
<td width="84%">Grosses Bild
<hr>
<div style="border:1px outset; background-color:#f5f5f5;"><% = bild %></div>
<br></td>
</tr>
</table>
</body>
</html>
</body>

</html>


Nun zu meinem Problem: wie bringe ich nur die 10 Einträge auf die Seite und wie definiere ich die Variabeln so das sie sich dem Ordner Inhalt anpassen.

Am Schluss hätten wir dann eine Galerie die in reinem ASP währe.
Danke schon mal für eure Anregungen und Erklärungen
 
Hallo,

meine ganz ehrliche Meinung, für sowas nutzt man besser eine Datenbank. Da stehen Dir über das Recordset viele Features zur Verfügung, die ein Paging, und das ist es ja im Grund, was Du möchtest, relativ einfach realisieren lassen.

Mit Sicherheit gibts auch im Inet ferfige Scripte, die eine Galeriescript auf Filesystembasis beinhalten. Einfach mal suchen z.B. auf http://www.aspin.com.
 
Hallo Luzie
Das mit einer Datenbank zulösen war auch mein erster Gedanke. Da ich aber sehr viele Bilder, bis zu ca. 500 in je verschiedenen Ordnern, zu unterschiedlichen Themen, darstellen muss, erschien mir alles in eine DB zu füllen sehr umständlich. Einfach nur die Ordner auslesen fand ich eleganter. Wie gesagt vielleicht bin ich auf dem falschen weg mit dieser Meinung. Gibt es den eine einfache Lösung eine DB zu füllen und sie dann schön auszugeben? Hab de keine Ahnung, habe so etwas im Internet nicht gefunden, vor allem nicht auf Deutsch erklärt, mein englisch ist nicht gerade das Beste. :confused:
 
Hi

celistef hat gesagt.:
Hallo Luzie
Das mit einer Datenbank zulösen war auch mein erster Gedanke. Da ich aber sehr viele Bilder, bis zu ca. 500 in je verschiedenen Ordnern, zu unterschiedlichen Themen, darstellen muss, erschien mir alles in eine DB zu füllen sehr umständlich. Einfach nur die Ordner auslesen fand ich eleganter.
dem möchte ich auch nicht widersprechen. Aber nicht, dass wir uns hier falsch verstehen, in der Datenbank werden lediglich die Pfade bzw. der Dateiname oder auch eine lfd. Nr (wenn die Bilder im Ordner numeriert sind) gespeichert. Die Bilder gehören eigentlich nicht in die Datenbank, sondern bleiben im Ordner.

500 Datensätze sind nicht viel. ;)
celistef hat gesagt.:
Wie gesagt vielleicht bin ich auf dem falschen weg mit dieser Meinung. Gibt es den eine einfache Lösung eine DB zu füllen und sie dann schön auszugeben? Hab de keine Ahnung, habe so etwas im Internet nicht gefunden, vor allem nicht auf Deutsch erklärt, mein englisch ist nicht gerade das Beste. :confused:
Ich möchte Dir jetzt auch nicht unbedingt meine Meinung aufzwingen. Ich bin ein Datenbankfreak, ganz egal welche Scirptsprache ich nutze. Von daher wird die Fileverarbeitung bei mir immer stiefmütterlich behandelt und muss ich was lösen, muss ich mir es auch umständlich zusammenbasteln.

Die Vorteile sind relativ einfach zusammengefasst:

Du kannst über die SQL (das ist die Sprache, mit der Du die Datenbank adminstrierst) und die Ausgabe über ein Recordset sehr viele Dinge vereinfachen. Z.B.

eine Suchoption auf Deine Bilder
Eingabe von Votings
Einfügen von Kommentaren
Sortierung nach unterschliedlichen Datails
Paging
und und und....

Ein Access-Datenbank ist auch schnell mit einem ASP-Script verbunden.
Einen schönen Kurs findest Du auf http://www.asphelper.de

Naja, dies ist wirklich nur meine Meinung und ich möchte Dich jetzt auch nicht beeinflussen oder verunsichern.
 
Mit den möglichen Optionen hast du absolut Recht. Bin um jede Anregung dankbar. Fand das mit den Ordnern auslesen eigentlich noch recht elegant (vor allem hat es mich sehr viel Zeit gekostet bis es lief :) ). Habe das mit den Bildpfaden in einer DB auch schon gemacht, für eine Porträtseite, so an die 30 Einträge und fand das recht mühsam.
Wie machst du das? Alle Einträge einzeln eingeben oder gibt’s dafür eine Automatische alternative?
Es sind momentan 2856 Bilder in diversen Ordnern und es werden eben immer mehr….. puh. :(
 
Hi

also ich mach das auf ganz unterschiedliche Art und Weise, wenn Du mein zurzeitiges Händling meinst. Die Scripte sind alle darauf eingereichtet, dass ich die Dateien erst uploade, den Pfad über einen Link in ein Formularfeld speichere und dann den Rest eingebe.

Wenn ich mehrere Bilder uploade, speichere ich die Pfade direkt im Anschluss auch in die Tabelle. Es kommt immer darauf an, was ich möchte, habe viele Varianten. Dadurch, dass ich keine Upload-Komponente nutzen kann allerdings nur nur beschränkte Möglichkeiten.

Gut, um näheres sagen zu können, müsste man wissen, wie Du das so händelst.

Also Pfad und Dateinamen jetzt in einer Datenbank abzuspeichern, ist ja nicht die Welt.
Da setzt Du halt in Deine for-each-Schleife ein DB-Verbindung mit SQL-Insert-Statement, vorher den Server.mappath() in eine extra Variable speichern, so dass Du auch direkt den Pfad hast, und schon solltest Du Pfad und Dateiname in der DB stehen haben.

Schau Dir mal die Seite http://www.photocase.de an. Die demonstriert auf sehr gute Art und Weise, was alles über eine Datenbank möglich ist. Mit Sicherheit speichern die Ihre Kommentare und Beschreibungen nicht in Textdateien.

Aber wie gesagt, man muss einfach wissen, was Du damit vor hast und dies soll nur eine Anregung von mir sein. Es können Dir auch andere hier noch Tipps geben.
 
Hallo

ich habe Dir jetzt mal eine Datei angehängt, vielleicht hilft Dir das weiter.

Hier habe die Files aus einem Verzeichnis in ein Recordset eingelesen um die Vorteile des Recordsets beim Paging nutzen zu können. Den Aufruf der unterschiedlichen Seiten kann man auch von außen steuern, in dem man dies halt in Variablen steckt (z.B. Session, oder Querysting etc. )

Hier noch einmal 2 Links, die in dem Falle für Dich interessant sein könnten.
http://www.asphelper.de/ASPKurs/A300102.asp
http://www.aspfaq.de/index.asp?RID=2&FID=21&SFI=1&ELE=1830&OPID=0&ORID=0&OSST=absolute&OSFI=1
 

Anhänge

  • rs_aus_Verzeichnis.txt
    3,3 KB · Aufrufe: 57
Hey super,
das hat mir echt geholfen. Hab’s angepasst und es läuft. Genau so hab ich mir das vorgestellt. Vielen Dank :p
 

Neue Beiträge

Zurück