webForumDet fria alternativet

Uppdelning av listade bilder

ASPur ASP

15 svar · 342 visningar · startad av KylFläns

Medlem sedan juli 20028 inlägg
Frågan#1

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!

Medlem sedan mars 20002 836 inlägg
#2

kanske kan vara ngt:

http://www.webforum.nu/showthread.php?s=&threadid=38820&highlight=bilder

cya,
PatrikB

Medlem sedan dec. 20011 860 inlägg
#3

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%>
Medlem sedan juli 20028 inlägg
#4

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
%>

Medlem sedan juli 20028 inlägg
#5

Din kod är i början av koden (min sida heter bildarkivet.asp)

Medlem sedan mars 20015 287 inlägg
#6

Det här ser väligt skumt ut:

Mappen = grafik/bildarkivet/Request.QueryString("dir")
Medlem sedan juli 20028 inlägg
#7

OKej, nu blev de något fel :/

\* Feltyp:
  Körningsfel i Microsoft VBScript (0x800A0006)
  Spill

/magazinet/web/magazinet/bildarkivet.asp, line 83

Medlem sedan mars 20015 287 inlägg
#8

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.

Medlem sedan juli 20028 inlägg
#9

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

Medlem sedan dec. 20011 860 inlägg
#10

Kanske så här?

Mappen = Server.MapPath("grafik/bildarkivet/" &Request.QueryString("dir"))

Medlem sedan juli 20028 inlägg
#11

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

Medlem sedan mars 20015 287 inlägg
#12

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?

Medlem sedan juli 20028 inlägg
#13

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
%>

Medlem sedan mars 20015 287 inlägg
#14

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

Medlem sedan juli 20028 inlägg
#15

OKej, jo om jag använder länkar så funkar de! Men jag vill att den ska visa bilderna direkt på sidan!

Medlem sedan mars 20015 287 inlägg
#16
<td><a href="<%=bildMappen %>/<%=File.Name%>" target="_blank"><%=File.Name%></b> - <%=Round(File.Size/1000, 1)%> kb<img src="<%=bildMappen %>/<%=File.Name%>">

</td>
138 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)