webForumDet fria alternativet

Skriva ut bilder istället för länkar

ASP

32 svar · 1 240 visningar · startad av Carro_

Medlem sedan feb. 200745 inlägg
Frågan#1

Har nu suttit och knåpat hela förmiddagen men jag får inte ihop det. :(

Vill lista bilderna med 6 på varje rad. EXEMPEL
l BILD01 l BILD02 l BILD03 l BILD04 l BILD05 l BILD06 l
l BILD07 l BILD08 l BILD09 l BILD10 l BILD11 l BILD12 l
l BILD13 l BILD14 l BILD15 l BILD16 l BILD17 l BILD18 l osv osv..

Så snälla hjälp mig med detta problem så skulle jag bli jätte glad.
Tack på förhand och GOD JUL ALLIHOPPA! :birp :D

<%
		  Response.Write "<select onChange=""url=this.options[this.selectedIndex].value; if(url){ location.href=url; }"">"&_
		  "<option value="""">- - - - - - - - - - - - - - - - - - - - - - VÄL MAPP HÄR - - - - - - - - - - - - - - - - - - - - - -</option>"
		  
		  Dim filesys, demofolder, subfol, folcoll, folist, mapp, SCRIPT_NAME
		  SCRIPT_NAME = Request.ServerVariables("SCRIPT_NAME")
		  Set Folder = CreateObject("Scripting.FileSystemObject")
		  Set demofolder = Folder.GetFolder(Folder.GetParentFolderName(Server.Mappath(SCRIPT_NAME)))
		  Set folcoll = demofolder.SubFolders
		  For Each subfol in folcoll
		  folist = folist & "<option value=""" & SCRIPT_NAME & "?mapp=" & subfol.Name & """>" & subfol.Name & "</option>"
		  Next
		  Response.Write folist & "</select>"
		  
		  mapp = Request.querystring("mapp")
		  IF mapp <> "" then
		  Response.Write "<br /><b>" & mapp & "</b><p>"
		  
		  Set FSO = Server.CreateObject("Scripting.FileSystemObject")
		  Set Folder = FSO.GetFolder(Server.Mappath(mapp))
		  set Files = Folder.Files
		  For each Item In Files
		  If isValidFile(Item.Name) Then
		  Response.Write "<a href=""" & mapp & "/" & Item.Name & """ onClick=""imgPopup4(this.href); return false;""><img src=""" & mapp & "/" & Item.Name & """ alt="""" width=""150"" height=""100"" border=""0"" /></a><br />"
		  End if
		  Next
		  End If
		  
		  Function isValidFile(filename)
		  fileExtension = lcase(right(filename,4))
		  select case fileExtension
		  case ".gif",".jpg",".png","jpeg"
		  isValidFile = TRUE
		  case else
		  isValidFile = FALSE
		  end select
		  End Function
		  %>
Medlem sedan feb. 200745 inlägg
#2

Har ändrat frågan ^^

Medlem sedan feb. 200745 inlägg
#3

Ingen som har någon ide??

Medlem sedan sep. 2006867 inlägg
#4

Vore det inte bra o berätta vad i allt som inte funkar?

Får du kompileringsfel, andra skumma fel, eller har du bara problem med att klura ut hur du ska koda för att det ska bli 6st på varje rad?

/HB

Medlem sedan feb. 200745 inlägg
#5

headbug skrev:

problem med att klura ut hur du ska koda för att det ska bli 6st på varje rad

/HB

^^ jepp. Har inte en susning faktisk, har gjort några tappra försök under dagen, men utan resultat.
Kan du hjälpa mig? :r

Medlem sedan sep. 2006867 inlägg
#6

Okej, då skulle jag kanske använda mig av en tabell för det är enkelt och stabilt för att visa bilder såhär.

Du har ett kodstycke som ser ut såhär:

Set FSO = Server.CreateObject("Scripting.FileSystemObject")
		  Set Folder = FSO.GetFolder(Server.Mappath(mapp))
		  set Files = Folder.Files
		  For each Item In Files
		  If isValidFile(Item.Name) Then
		  Response.Write "<a href=""" & mapp & "/" & Item.Name & """ onClick=""imgPopup4(this.href); return false;""><img src=""" & mapp & "/" & Item.Name & """ alt="""" width=""150"" height=""100"" border=""0"" /></a><br />"
		  End if
		  Next
		  End If

Det kan du ändra till

Set FSO = Server.CreateObject("Scripting.FileSystemObject")
		  Set Folder = FSO.GetFolder(Server.Mappath(mapp))
		  set Files = Folder.Files
		  Dim count
		  count = 1
		  Response.write "<table>"
		  For each Item In Files
		  If isValidFile(Item.Name) Then
		  if count MOD 6 = 0 Then
		  Response.write "<tr>"
		  End if
		  Response.write "<td>"
		  Response.Write "<a href=""" & mapp & "/" & Item.Name & """ onClick=""imgPopup4(this.href); return false;""><img src=""" & mapp & "/" & Item.Name & """ alt="""" width=""150"" height=""100"" border=""0"" /></a>"
		  Response.write "</td>"
		  If count MOD 6 = 0 Then
		  Response.write "</tr>"
		  End if
		  End if
		  count = count + 1
		  Next
		  Response.write "</table>"
		  End If

Nu har jag inte testat, men jag tror det ska funka!

Medlem sedan feb. 200745 inlägg
#7

headbug skrev:

Nu har jag inte testat, men jag tror det ska funka!

Jätte tack! :)
Dock visar den bilderna så här.. hmm?
l BILD01 l BILD02 l BILD03 l BILD04 l BILD05 l
l BILD06 l
l BILD07 l BILD08 l BILD09 l BILD10 l BILD11 l
l BILD12 l
l BILD13 l BILD14 l BILD15 l BILD16 l BILD17 l
l BILD18 l

Medlem sedan juni 20019 519 inlägg
#8

Det är nog så att din upplösning på din webbläsare mot bildernas upplösning gör så att bild 06,12 och 18 bryts pga att bilderna är lite för stora?

Ge oss en länk så vi kan se koden som genereras ut eller infoga HTML koden som byggs av ASP koden för mer felsökning.

Medlem sedan feb. 200745 inlägg
#9

voigtann1 skrev:

Det är nog så att din upplösning på din webbläsare mot bildernas upplösning gör så att bild 06,12 och 18 bryts pga att bilderna är lite för stora?

Ge oss en länk så vi kan se koden som genereras ut eller infoga HTML koden som byggs av ASP koden för mer felsökning.

nix.. jag kör bilderna i 50x50, sidan ligger lokalt på min dator.
Problemet ligger i koden, jag kör ju bara den i en ren sida, så det inns ingen annan kod som kan strula till det.

Medlem sedan sep. 2006867 inlägg
#10

Jag har nog tänkt lite galet med min MOD-lösning. Testa att sätta

		  Dim count
		  count = 0

istället för som det står ovan!

Medlem sedan feb. 200745 inlägg
#11

headbug skrev:

Jag har nog tänkt lite galet med min MOD-lösning. Testa att sätta

		  Dim count
		  count = 0

istället för som det står ovan!

Nu blir det så här :e hehe är jätte tacksam att du hjälper mig iaf =)
l BILD01 l
l BILD02 l BILD03 l BILD04 l BILD05 l BILD06 l
l BILD07 l
l BILD08 l BILD09 l BILD10 l BILD11 l BILD12 l
l BILD13 l
l BILD14 l BILD15 l BILD16 l BILD17 l BILD18 l

Medlem sedan feb. 200745 inlägg
#12

Nu gjorde jag en nödlösning så länge.

<%
		  Response.Write "<select onChange=""url=this.options[this.selectedIndex].value; if(url){ location.href=url; }"">"&_
		  "<option value="""">Välj mapp</option>"
		  
		  Dim filesys, demofolder, subfol, folcoll, folist, mapp, SCRIPT_NAME
		  SCRIPT_NAME = Request.ServerVariables("SCRIPT_NAME")
		  Set Folder = CreateObject("Scripting.FileSystemObject")
		  Set demofolder = Folder.GetFolder(Folder.GetParentFolderName(Server.Mappath(SCRIPT_NAME)))
		  Set folcoll = demofolder.SubFolders
		  For Each subfol in folcoll
		  folist = folist & "<option value=""" & SCRIPT_NAME & "?mapp=" & subfol.Name & """>" & subfol.Name & "</option>"
		  Next
		  Response.Write folist & "</select>"
		  
		  mapp = Request.querystring("mapp")
		  IF mapp <> "" then
		  Response.Write "<br /><b>" & mapp & "</b><p>"
		  
		  Set FSO = Server.CreateObject("Scripting.FileSystemObject")
		  Set Folder = FSO.GetFolder(Server.Mappath(mapp))
		  set Files = Folder.Files
		  Dim count
		  count = 0
		  For each Item In Files
		  If isValidFile(Item.Name) Then
		  if count MOD 6 = 0 Then
		  End if
		  Response.Write " <a href=""" & mapp & "/" & Item.Name & """ onClick=""imgPopup4(this.href); return false;"" target=""_blank""><img src=""" & mapp & "/" & Item.Name & """ alt="""" width=""135"" height=""80"" border=""0"" /></a>"
		  If count MOD 6 = 0 Then
		  End if
		  End if
		  count = count + 1
		  Next
		  End If
		  
		  Function isValidFile(filename)
		  fileExtension = lcase(right(filename,4))
		  select case fileExtension
		  case ".gif",".jpg",".png","jpeg"
		  isValidFile = TRUE
		  case else
		  isValidFile = FALSE
		  end select
		  End Function
		  %>
Medlem sedan juni 20019 519 inlägg
#13
<%
Response.Write "<select onChange=""url=this.options[this.selectedIndex].value; if(url){ location.href=url; }"">" & _
			   "<option value="""">Välj mapp</option>"

Dim filesys, demofolder, subfol, folcoll, folist, mapp, SCRIPT_NAME

SCRIPT_NAME = Request.ServerVariables("SCRIPT_NAME")
mapp = Request.querystring("mapp")

Set Folder = CreateObject("Scripting.FileSystemObject")
Set demofolder = Folder.GetFolder(Folder.GetParentFolderName(Server.Mappath(SCRIPT_NAME)))
Set folcoll = demofolder.SubFolders

For Each subfol in folcoll
	folist = folist & "<option value=""" & SCRIPT_NAME & "?mapp=" & subfol.Name & """>" & subfol.Name & "</option>"
Next

Response.Write folist & "</select>" & vbCrLf & vbCrLf

IF mapp <> "" then
	Response.Write "<br /><b>" & mapp & "</b><p>"
	Set FSO = Server.CreateObject("Scripting.FileSystemObject")
	Set Folder = FSO.GetFolder(Server.Mappath(mapp))
	set Files = Folder.Files
	Dim count
	count = 1
	If Files.Count > 0 Then
		Response.Write "<table>" & vbCrLf & "<tr>" & vbCrLf
		For each Item In Files
			If isValidFile(Item.Name) Then
				Response.Write "<td><a href=""" & mapp & "/" & Item.Name & """ onClick=""imgPopup4(this.href); return false;"" target=""_blank"">!<img src=""" & mapp & "/" & Item.Name & """ alt="""" width=""135"" height=""80"" border=""0"" /></a></td>" & vbcrlf
				If count MOD 6 = 0 Then
					Response.Write "</tr>"&vbCrLf&"<tr>" & vbCrLf
				End if
			End if
			count = count + 1
		Next
		Response.Write "</tr></table>"
	End If
End If

Function isValidFile(filename)
	select case lcase(right(filename,4))
		case ".gif",".jpg",".png","jpeg"
			isValidFile = TRUE
		case else
			isValidFile = FALSE
	end select
End Function
%>
Medlem sedan sep. 2006867 inlägg
#14

Precis, drömde till och med om det här i min feberyra, får skylla på det att jag inte tänker klart :)

Medlem sedan juni 20019 519 inlägg
#15

headbug skrev:

Precis, drömde till och med om det här i min feberyra, får skylla på det att jag inte tänker klart :)

Att jag skulle posta det eller? :P
Kan ju nämna att jag inte ha "brytt" mig om att om du har filer i mappen och det är bara filer som inte är OK enligt isValidFile så kommer den skriva ut en table ändå med inga <td>...

Medlem sedan juni 20019 519 inlägg
#16

Kollade koden igen... den är inte alls rätt.
Koden ovan kommer att kunna räkna fel när den ska bryta då den läser av alla filer i mappen. Så om vi har 12 bilder men endast 8 av dom så kommer den ändå bryta när fil nummer 6 har kontrollerats.

Jag gjorde en funktion av den istället och nu ska den inte rita ut en table om du inte har några bilder:

Function RenderImagesList(sFolder,lImagesPerRow)
	Dim retrunString, FSO, Folder, Files, count
	If sFolder <> "" Then
		Set FSO = Server.CreateObject("Scripting.FileSystemObject")
		Set Folder = FSO.GetFolder(Server.Mappath(sFolder))
		set Files = Folder.Files
		count = 1
		If Files.Count > 0 Then
			For each Item In Files
				If isValidFile(Item.Name) Then
					retrunString = retrunString & "<td><a href=""" & sFolder & "/" & Item.Name & """ onClick=""imgPopup4(this.href); return false;"" target=""_blank""><img src=""" & mapp & "/" & Item.Name & """ alt="""" width=""135"" height=""80"" border=""0"" /></a></td>" & vbcrlf
					If count MOD lImagesPerRow = 0 Then
						retrunString = retrunString & "</tr>"&vbCrLf&"<tr>" & vbCrLf
					End if
					count = count + 1
				End if
			Next
			If Len(retrunString) > 0 Then retrunString = "<p><table><tr>" & retrunString & "</tr></table></p>"
		End If
		Set FSO = Nothing
		Set Folder = Nothing
		Set Files = Nothing
	End If
	RenderImagesList = "<br/><b>" & sFolder & "</b>" & retrunString
End Function
Response.Write RenderImagesList(mapp, 6)

(6 är antal bilder per rad).

red. Hittade lite fel på koden.

Medlem sedan feb. 200745 inlägg
#17

voigtann1 skrev:

Kollade koden igen... den är inte alls rätt.

Nu är jag inte alls med. Är jag på rätt väg? :OO

<%
Response.Write "<select onChange=""url=this.options[this.selectedIndex].value; if(url){ location.href=url; }"">" & _
			   "<option value="""">Välj mapp</option>"

Dim filesys, demofolder, subfol, folcoll, folist, mapp, SCRIPT_NAME

SCRIPT_NAME = Request.ServerVariables("SCRIPT_NAME")
mapp = Request.querystring("mapp")

Set Folder = CreateObject("Scripting.FileSystemObject")
Set demofolder = Folder.GetFolder(Folder.GetParentFolderName(Server.Mappath(S  CRIPT_NAME)))
Set folcoll = demofolder.SubFolders

For Each subfol in folcoll
	folist = folist & "<option value=""" & SCRIPT_NAME & "?mapp=" & subfol.Name & """>" & subfol.Name & "</option>"
Next

Response.Write folist & "</select>" & vbCrLf & vbCrLf

IF mapp <> "" then
	Response.Write "<br /><b>" & mapp & "</b><p>"
	Set FSO = Server.CreateObject("Scripting.FileSystemObject")
	Set Folder = FSO.GetFolder(Server.Mappath(mapp))
	set Files = Folder.Files
	Dim count
	count = 1
	If Files.Count > 0 Then
		Response.Write "<table>" & vbCrLf & "<tr>" & vbCrLf
		For each Item In Files
			If isValidFile(Item.Name) Then
				Response.Write "<td><a href=""" & mapp & "/" & Item.Name & """ onClick=""imgPopup4(this.href); return false;"" target=""_blank"">!<img src=""" & mapp & "/" & Item.Name & """ alt="""" width=""135"" height=""80"" border=""0"" /></a></td>" & vbcrlf
				If count MOD 6 = 0 Then
					Response.Write "</tr>"&vbCrLf&"<tr>" & vbCrLf
				End if
			End if
			count = count + 1
		Next
		Response.Write "</tr></table>"
	End If
End If

Function RenderImagesList(sFolder,lImagesPerRow)
	Dim retrunString, FSO, Folder, Files, count
	If sFolder <> "" Then
		Set FSO = Server.CreateObject("Scripting.FileSystemObject")
		Set Folder = FSO.GetFolder(Server.Mappath(sFolder))
		set Files = Folder.Files
		count = 1
		If Files.Count > 0 Then
			For each Item In Files
				If isValidFile(Item.Name) Then
					retrunString = retrunString & "<td><a href=""" & sFolder & "/" & Item.Name & """ onClick=""imgPopup4(this.href); return false;"" target=""_blank""><img src=""" & mapp & "/" & Item.Name & """ alt="""" width=""135"" height=""80"" border=""0"" /></a></td>" & vbcrlf
					If count MOD lImagesPerRow = 0 Then
						retrunString = retrunString & "</tr>"&vbCrLf&"<tr>" & vbCrLf
					End if
					count = count + 1
				End if
			Next
			If Len(retrunString) > 0 Then retrunString = "<p><table><tr>" & retrunString & "</tr></table></p>"
		End If
		Set FSO = Nothing
		Set Folder = Nothing
		Set Files = Nothing
	End If
	RenderImagesList = "<br/><b>" & sFolder & "</b>" & retrunString
End Function
%>
Medlem sedan juni 20019 519 inlägg
#18
<%
Dim filesys, demofolder, subfol, folcoll, folist, mapp, SCRIPT_NAME
SCRIPT_NAME = Request.ServerVariables("SCRIPT_NAME")
mapp = Request.querystring("mapp")

Response.Write "<select onChange=""url=this.options[this.selectedIndex].value; if(url){ location.href=url; }"">" & _
			   "<option value="""">Välj mapp</option>"

Set Folder = CreateObject("Scripting.FileSystemObject")
Set demofolder = Folder.GetFolder(Folder.GetParentFolderName(Server.Mappath(SCRIPT_NAME)))
Set folcoll = demofolder.SubFolders

For Each subfol In folcoll
	folist = folist & "<option value=""" & SCRIPT_NAME & "?mapp=" & subfol.Name & """>" & subfol.Name & "</option>"
Next

Response.Write folist & "</select>" & vbCrLf & vbCrLf
Set Folder = Nothing
Set demofolder = Nothing
Set folcoll = Nothing

Response.Write RenderImagesList(mapp, 6) ' ### Draw all the Images in a nice table list.

' Function that Renders out the Images in a specific folder.
' ## sFolder - String: Folder Name.
' ## lImagesPerRow - Long: How many Images per row should be rendered.
Function RenderImagesList(sFolder,lImagesPerRow)
	Dim retrunString, FSO, Folder, Files, count
	If sFolder <> "" Then
		Set FSO = Server.CreateObject("Scripting.FileSystemObject")
		Set Folder = FSO.GetFolder(Server.Mappath(sFolder))
		set Files = Folder.Files
		count = 1
		If Files.Count > 0 Then
			For each Item In Files
				If isValidFile(Item.Name) Then
					retrunString = retrunString & "<td><a href=""" & sFolder & "/" & Item.Name & """ onClick=""imgPopup4(this.href); return false;"" target=""_blank""><img src=""" & mapp & "/" & Item.Name & """ alt="""" width=""135"" height=""80"" border=""0"" /></a></td>" & vbcrlf
					If count MOD lImagesPerRow = 0 Then
						retrunString = retrunString & "</tr>"&vbCrLf&"<tr>" & vbCrLf
					End if
					count = count + 1
				End if
			Next
			' If No matches from isValidFile function we wont have any length on the string below. We wont render out the start code for a HTML table.
			If Len(retrunString) > 0 Then retrunString = "<p><table><tr>" & retrunString & "</tr></table></p>"
		End If
		Set FSO = Nothing
		Set Folder = Nothing
		Set Files = Nothing
	End If
	RenderImagesList = "<br/><b>" & sFolder & "</b>" & retrunString
End Function

' Function That checks if the file is a vaild file to render out.
Function isValidFile(filename)
	Select Case lcase(right(filename,4))
		Case ".gif",".jpg",".png","jpeg"
			isValidFile = True
		CaseElse
			isValidFile = False
	End Select
End Function
%>

Är om du ersätter allt som du har postat tidigare.
Du saknade:

Response.Write RenderImagesList(mapp, 6)

Och jag gjorde även lite ändringar i din kod att avsluta de objekt du har öppnat men inte avslutat.

Set Folder = Nothing
Set demofolder = Nothing
Set folcoll = Nothing
Medlem sedan feb. 200745 inlägg
#19

Va`?

Medlem sedan juni 20019 519 inlägg
#20

Carro_ skrev:

Va`?

Ja

Vad menar du med va?... är inte direkt lätt att förklara för dig ;)

"min" kod med alla rader... ta den och erästt din kod så skall det fungera helt enkelt.

278 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
130 ms — deklarationer (db)
0 ms — hämta statistik (cache)
145 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)