kanske kan vara ngt:
http://www.webforum.nu/showthread.php?s=&threadid=38820&highlight=bilder
cya,
PatrikB
15 svar · 342 visningar · startad av KylFläns
Hej
Jo, de e så att jag jobbar med en sida där det finns ett bildarkiv. Bilderna listas automatiskt hem hjälp av ett script!
List scriptet:
<%
Set MyDirectory=Server.CreateObject("Scripting.FileSystemObject")
Set MyFiles=MyDirectory.GetFolder(Server.MapPath("grafik/bildarkivet/" & mapp & ""))
For Each filefound In MyFiles.files
Response.Write "<img src=grafik/bildarkivet/" & mapp & "/" & filefound.Name & " border=1><br><img src=grafik/blank10x10.gif><br>"
Next
%>
Jag har öven gjort så att den listar en post ur databasen!
I ett paging script RÄKNAR den ju poster och gör sidor efter de! Men hör använder jag ju inte databasen! Jag hoppas ni förstår vad jag menar! Vet inte riktigt hur jag ska beskriva!
kanske kan vara ngt:
http://www.webforum.nu/showthread.php?s=&threadid=38820&highlight=bilder
cya,
PatrikB
Här är ett paging med bilder. Döp den till lista.asp och kolla hur den fungerar:
<%Mappen = Server.MapPath("pics") 'MAPPENS NAMN
Set MappKoll = Server.CreateObject("Scripting.FileSystemObject")
Set Mapp = MappKoll.getFolder(Mappen)
PS = 5
If Mapp.Files.Count Mod PS Then
Sidor = Mapp.Files.Count \ PS + 1
Else
Sidor = Mapp.Files.Count \ PS
End If
Sida = Request.QueryString("sida")
If Sida = "" Then
Sida = 1
End If
Start = (Sida - 1) * PS
Slut = Start + PS
If Mapp.Files.Count = 0 Then%>
<tr>
<td>Inga bilder!</td>
</tr>
<%Else
For Each File In Mapp.Files
bild = InStrRev(LCase(File.Name), "." )
If bild < 1 Then bild = "" Else bild = Mid(LCase(File.Name),bild+1)
If X < Start Then
ElseIf X < Slut Then%>
<tr>
<td><a href="<%=Mappen%>/<%=File.Name%>" target="_blank"><%=File.Name%></b> - <%=Round(File.Size/1000, 1)%> kb</td>
</tr>
<%Else
Exit For
End If
X = X + 1
Next
End If
If Sidor > 1 Then%>
<tr>
<td><hr></td>
</tr>
<tr>
<td>
<%For i = 1 To Sidor
If i = CInt(Sida) Then
Response.Write "<b>" & i & "</b>"
Else
Response.Write " <a href=lista.asp?sida=" & i & ">" & i & "</a> "
End If
Next%>
</td>
</tr>
<tr>
<td><hr></td>
</tr>
<%End If%>
Okej, jag fick de inte att funka!
Skickar med den korta koden här :)
Mina bilder som ska listas ligger i grafik/bildarkivet/mappen..
Jag hoppas du förstår ÅSA! O du, de e jag som e Jenza på din ICQ! Kan ju ta de där om du e uppkopplad senare!
<html>
<head>
<style>
A:link { text-decoration: none ; color: #0000FF}
A:active { text-decoration: none ; color: #0000FF}
A:visited { text-decoration: none ; color: #0000FF}
A:hover { color: #000000 }
input { font-family: Verdana; font-size: 8pt; border: 1px solid #C0C0C0; background-color: #FFFFFF }
</style>
<script LANGUAGE="javascript">
<!--
function bekrafta(URL,txt)
{
if (confirm(txt)){
location = URL
}
}
//-->
</script>
<script language="JavaScript">
<!-- JavaScript
function PopUp(url, w, h)
{
window.open(url,"PopUp","width="+w+",height="+h+",resizable=yes,scrollbars=yes,menubar=no,toolbar=no,directories=no,location=no,status=no");
}
// - JavaScript - -->
</script>
<link href="include/style.css" rel="stylesheet" type="text/css">
<body topmargin="10" leftmargin="10">
<%
IF Request.QueryString("do") = "visa" THEN
%>
\<div align=center\>
<%
Session.lcid = 1053
id = Request.QueryString("arkiv_id")
mapp = Request.QueryString("dir")
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (\*.mdb)};dbq=" & Server.MapPath("../../../odbc/bildarkiv.mdb")
Set RecSet = Server.CreateObject("ADODB.Recordset")
sqlVisa = "Select \* FROM bildarkiv WHERE arkiv_id="&id
RecSet.Open sqlVisa, Connect, adOpenStatic, adLockOptimistic
%>
<title>Bildarkivet - <%=RecSet("arkiv_namn")%></title>
<table border="1" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber1" bgcolor="#FFFFBF" cellpadding="5">
\<tr\>
\<td\>
\<font face=verdana\>
\<font size=2\>
\<b\>\<%=RecSet("arkiv_namn")%\>\</b\>
\<br\>\<br\>
\</font\>
\<font size=1\>
\<%=RecSet("text")%\>
\<br\>\<br\>
\<i\>Bilderna är copyright skyddade - all kopiering är förbjuden!\</i\>
\<br\>\<br\>
<%Mappen = grafik/bildarkivet/Request.QueryString("dir")
Set MappKoll = Server.CreateObject("Scripting.FileSystemObject")
Set Mapp = MappKoll.getFolder(Mappen)
PS = 5
If Mapp.Files.Count Mod PS Then
Sidor = Mapp.Files.Count \ PS + 1
Else
Sidor = Mapp.Files.Count \ PS
End If
Sida = Request.QueryString("sida")
If Sida = "" Then
Sida = 1
End If
Start = (Sida - 1) * PS
Slut = Start + PS
If Mapp.Files.Count = 0 Then%>
<tr>
<td>Inga bilder!</td>
</tr>
<%Else
For Each File In Mapp.Files
bild = InStrRev(LCase(File.Name), "." )
If bild \< 1 Then bild = "" Else bild = Mid(LCase(File.Name),bild+1)
If X \< Start Then
ElseIf X \< Slut Then%\>
\<tr\>
\<td\>\<a href="grafik/bildarkivet/\<%=Mappen%\>/\<%=File.Name%\>" target="\_blank"\>\<%=File.Name%\>\</b\> - \<%=Round(File.Size/1000, 1)%\> kb\</td\>
\</tr\>
\<%Else
Exit For
End If
X = X + 1
Next
End If
If Sidor > 1 Then%>
<tr>
<td><hr></td>
</tr>
<tr>
<td>
<%For i = 1 To Sidor
If i = CInt(Sida) Then
Response.Write "<b>" & i & "</b>"
Else
Response.Write " <a href=lista.asp?sida=" & i & ">" & i & "</a> "
End If
Next%>
</td>
</tr>
<tr>
<td><hr></td>
</tr>
<%End If%>
\</font\>
\</font\>
\</td\>
\</tr\>
</table>
</div>
<%
Else
%>
<!--#Include file = "include/adovbs.inc"-->
<%
Session.lcid = 1053
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (\*.mdb)};dbq=" & Server.MapPath("../../../odbc/bildarkiv.mdb")
Set RecSet = Server.CreateObject("ADODB.Recordset")
Visa = "SELECT \* FROM bildarkiv ORDER BY arkiv_namn"
%>
<body topmargin="10" leftmargin="10">
<table border=1 width=100% cellpadding=6 cellspacing=0 style="border-collapse: collapse; border-left-style: solid; border-right-style: solid; border-top-style: solid; " bgcolor="#FFFFBF" bordercolor="#000000">
<tr>
<td valign=top style="border-bottom:1px solid #C0C0C0; border-left-width: 1; border-right-width: 1; border-top-width: 1; ">
\<font face=verdana\>
\<font size=2\>\<b\>Bildarkivet\</b\>\</font\>
\<font size=1\>
<%
If Session("login") <> "" Then
%>
\<br\>
\<a href="administrera/bildarkiv/laggtill.asp"\>Lägg till nytt bildarkiv\</a\>
<%
End If
%>
\<br\>\<br\>
<%
RecSet.Open Visa, Connect, adOpenStatic, adLockOptimistic
DO UNTIL RecSet.EOF
%>
\<b\>\<a href="javascript: PopUp('bildarkivet.asp?do=visa&dir=\<%=RecSet("arkiv_filnamn")%\>&arkiv_id=\<%=RecSet("arkiv_id")%\>',455,500)"\>\<%=RecSet("arkiv_namn")%\>\</a\>\</b\>
\<br\>\<br\>
<%
If Not RecSet("text") = "" Then
Text = Server.HTMLEncode(RecSet("text"))
Text = Replace (Text,chr(13) & chr(10), "<br>")
Response.Write Text
End If
%>
<%
If Session("login") <> "" Then
%>
\<br\>
\<a href="javascript:bekrafta('administrera/bildarkiv/redigera.asp?arkivID=\<%=RecSet("arkiv_id")%\>','Är du säker att du vill redigera: \<%=RecSet("arkiv_namn")%\> (Arkiv-ID: \<%=RecSet("arkiv_id")%\>)')"\>Redigera\</a\> \|
\<a href="javascript:bekrafta('administrera/bildarkiv/tabort.asp?arkivID=\<%=RecSet("arkiv_id")%\>','Är du säker att du vill tabort: \<%=RecSet("arkiv_namn")%\> (Arkiv-ID: \<%=RecSet("arkiv_id")%\>)')"\>Ta bort\</a\>
<%
End If
%>
\<br\>\<br\>
<%
RecSet.MoveNext
Loop
RecSet.Close
%>
\</td\>
\</tr\>
</table>
<%
End If
%>
Din kod är i början av koden (min sida heter bildarkivet.asp)
OKej, nu blev de något fel :/
\* Feltyp:
Körningsfel i Microsoft VBScript (0x800A0006)
Spill
/magazinet/web/magazinet/bildarkivet.asp, line 83
Ska inte den där raden se ut något som liknande:
Mappen = "grafik/bildarkivet/" & Request.QueryString("dir")
Förutsatt att dessa mappar ligger under scriptfilen.
Okej,. nu säger den att den inte hittar mappen!
Microsoft VBScript runtime error '800a004c'
Path not found
/web/magazinet/bildarkivet.asp, line 87
Mappen = "grafik/bildarkivet/" &mapp
Set MappKoll = Server.CreateObject("Scripting.FileSystemObject")
rad 87 --> Set Mapp = MappKoll.getFolder(Mappen)
PS = 5
If Mapp.Files.Count Mod PS Then
Sidor = Mapp.Files.Count \ PS + 1
Else
Sidor = Mapp.Files.Count \ PS
OKej :/ Nu funkar de! MEn alltså när jag säger att den ska lista bilderna direkt så säger den att sökvägen till bilderna ligger på e:\magazinet\web\magazinet\grafik\bildarkiv\mappen\filnamn.typ
Jag vill att sökvägen ska bli grafik/bildarkivet/mappen/filnamn.typ
Vad jag förstår måste man ange den "fysiska" sökvägen för FSO .
Om du vill använda dig av en annan adress för att visa dina bilder, så använd dig av två variabler typ:
bildMappen = "grafik/bildarkivet/" &Request.QueryString("dir"))
Mappen = Server.MapPath(bildMappen)
Så använder du variabeln bildMappen när du ska länka till bilderna, typ:
<td><a href="<%=bildMappen%>/<%=File.Name%>" target="_blank"><%=File.Name%></b> - <%=Round(File.Size/1000, 1)%> kb</td>
För det är väl bara där det knasar med att ha den fysiska sökvägen?
Alltså, jag vill inte lista filerna i mappen, jag vill att den hämtar bildern o vissar den i en <img src=""> Men nu när jag testade din variant på koden så blir de fortfarande sådär att den tar E:\osv sökvägen! Kan man inte göra något enkelt paging-scrip till denhär koden istället?
<%
Set MyDirectory=Server.CreateObject("Scripting.FileSystemObject")
Set MyFiles=MyDirectory.GetFolder(Server.MapPath("grafik/bildarkivet/" & mapp & ""))
For Each filefound In MyFiles.files
Response.Write "<img src=grafik/bildarkivet/" & mapp & "/" & filefound.Name & " border=1><br><br>"
Next
%>
Jag ändrade lite på det jag skrivit, men blir det inte rätt om länken till bilderna är:
grafik/bildarkivet/" &Request.QueryString("dir")
mao variabeln: bildMappen som jag kallade den? Där kan det väl inte bli en sökväg ända från E: ?
OKej, jo om jag använder länkar så funkar de! Men jag vill att den ska visa bilderna direkt på sidan!
<td><a href="<%=bildMappen %>/<%=File.Name%>" target="_blank"><%=File.Name%></b> - <%=Round(File.Size/1000, 1)%> kb<img src="<%=bildMappen %>/<%=File.Name%>">
</td>