Avatar billede chrisjon Nybegynder
15. september 2005 - 00:05 Der er 35 kommentarer og
1 løsning

Aspimage overflow

Haløjsa, jeg har siddet og bøvlet med mit lorte script i noget tid, og jeg er ikke så meget inde i asp mere, så jeg har lidt probs med det, jeg får følgende fejl.

Microsoft VBScript runtime  error '800a0006'

Overflow

/chrisjon_dkv2/indhold/viewgal.asp, line 59

og jeg er mere på den en med på den. så her er min source. til viewgal.asp


her er koden


<table cellspacing="0px" cellpadding="0px" class="tbl_main_txt">
<tr>
<td valign="top" align="center" colspan="2">
<p><a href="index.asp?indhold=gallery" target="_self">[Back To Overview]</a></p>
<br>

<table cellspacing="0px" cellpadding="0px" class="tbl_news">
<tr>
<td class="td_news_top1" align="left">
<h1><img src="images/h1_dot.gif" alt="h1_dot.gif">
<%
foldername = Request.QueryString("id")
response.write "" & foldername & ""
%>
</h1>
</td>
<td class="td_news_top1" align="right">
<p class='p1'> Saturday the 28th of May, 2005</p>
</td>
</tr>
<tr>
<td class="td_news_txt" align="left" colspan="2">
<p>
<%

Set readtekst=Server.CreateObject("Scripting.FileSystemObject")

Set readtekst2=readtekst.OpenTextFile(Server.MapPath("gallery/" & foldername & "/tekst/info.txt"), 1)
Response.Write(readtekst2.ReadAll)
readtekst2.Close

Set readtekst2=Nothing
Set readtekst=Nothing
%>

<br><br></p>
</td>
</tr>
<tr>
<td align="left" valign="top" colspan="2">
<%
dim ffs, filefolder, objImage, intXSize, intYSize, strfilename, filename
set ffs=Server.CreateObject("Scripting.FileSystemObject")
set filefolder=ffs.GetFolder("../../Inetpub/wwwroot/chrisjon_dkv2/gallery/" & foldername & "")
Set objImage = Server.CreateObject("AspImage.Image")

for each strfilename in filefolder.files
filename = strfilename.name

objImage.LoadImage(Server.MapPath("../../Inetpub/wwwroot/chrisjon_dkv2/gallery/' & foldername & '' & filename & '"))

intXSize = 100
intYSize = 100
objImage.ImageFormat = 1
objImage.JPEGQuality = 70
ProgressiveJPEGEncoding = true
objImage.ResizeR intXSize, intYSize
Response.ContentType = "image/jpeg"
Response.binarywrite objimage.image

next
set filefolder=nothing
set ffs=nothing
Set objImage = nothing


%>
</td>
</tr>
</table>

</td>
</tr>
</table>
Avatar billede softspot Forsker
15. september 2005 - 00:09 #1
...og linie 59 var hvilken linie?
Avatar billede chrisjon Nybegynder
15. september 2005 - 00:13 #2
sorry linie 59 er

Response.ContentType = "image/jpeg"
Avatar billede softspot Forsker
15. september 2005 - 00:16 #3
En ting jeg studser over er at du benytter både respose.write og response.binarywrite i samme script... det må du ikke. Enten bruger du den ene ellers bruger du den anden.

Hvis du vil vise dit billede igen, skal du lægge den binære datastrøm over i en separat asp-fil som du linker til i et image-tag.


<img src="binaryfile.asp">


og så i binaryfile.asp denne kode (det er bare dit kode råt uden at have kigget yderligere på det):

<%
dim ffs, filefolder, objImage, intXSize, intYSize, strfilename, filename
set ffs=Server.CreateObject("Scripting.FileSystemObject")
set filefolder=ffs.GetFolder("../../Inetpub/wwwroot/chrisjon_dkv2/gallery/" & foldername & "")
Set objImage = Server.CreateObject("AspImage.Image")

for each strfilename in filefolder.files
filename = strfilename.name

objImage.LoadImage(Server.MapPath("../../Inetpub/wwwroot/chrisjon_dkv2/gallery/' & foldername & '' & filename & '"))

intXSize = 100
intYSize = 100
objImage.ImageFormat = 1
objImage.JPEGQuality = 70
ProgressiveJPEGEncoding = true
objImage.ResizeR intXSize, intYSize
Response.ContentType = "image/jpeg"
Response.binarywrite objimage.image

next
set filefolder=nothing
set ffs=nothing
Set objImage = nothing


%>
Avatar billede chrisjon Nybegynder
15. september 2005 - 00:23 #4
okay nu er jeg lost, den skal lige tænkes lidt over den der, troede ikke at man kunne lave src=binary.asp. men den skal vel også "loopes" den img, fil i forhold til hvor mange billeder der er i mappen, desudne skal jeg også have foldername over til asp filen.
Avatar billede softspot Forsker
15. september 2005 - 00:31 #5
Det er tilladt at kalde en asp-fil (eller enhver anden filtype i src på et image), sålænge den genererer noget binært output der kan fortolkes som et billede...

Som sagt havde jeg ikke lige nærkigget din "generer binær fil"-kode, men jeg kan da godt se at det loop skal flyttes op i den første asp-fil... Du skal i den forbindelse nok også lige have sat en parameter på binaryfile.asp for at kunne finde frem til den fil der skal sendes. Det kunne f.eks. være foldername og filename som 2 parametre. Eksempelvis:

<img src="binaryfile.asp?foldername=test&filename=billede1.jpg">

eller bare den relative sti

<img src="binaryfile.asp?file=/test/billede1.jpg">

eller en anden variant (som skal håndteres lidt anderledes på serveren):

<img src="binaryfile.asp?/test/billede1.jpg">
Avatar billede chrisjon Nybegynder
15. september 2005 - 00:45 #6
jeg kan godt lidt se hvad det er du mener, men tror bare at jeg kludre i det.

viewgal.asp blev til

<td align="left" valign="top" colspan="2">
<%
dim ffs, filefolder, objImage, intXSize, intYSize, strfilename, filename
set ffs=Server.CreateObject("Scripting.FileSystemObject")
set filefolder=ffs.GetFolder("../../Inetpub/wwwroot/chrisjon_dkv2/gallery/" & foldername & "")
Set objImage = Server.CreateObject("AspImage.Image")

for each strfilename in filefolder.files

response.write "<img src='indhold/binary.asp?file=" & strfilename.name & "&folder=" & foldername & ".jpg'>"

next
set filefolder=nothing
set ffs=nothing
%>
</td>



og binary.asp blev til

<%
strfile = Request.QueryString("file")
strfolder = Request.QueryString("folder")

objImage.LoadImage(Server.MapPath("../../Inetpub/wwwroot/chrisjon_dkv2/gallery/' & strfolder & '' & strfile & '"))

intXSize = 100
intYSize = 100
objImage.ImageFormat = 1
objImage.JPEGQuality = 70
ProgressiveJPEGEncoding = true
objImage.ResizeR intXSize, intYSize
Response.ContentType = "image/jpeg"
Response.binarywrite objimage.image

next
set filefolder=nothing
set ffs=nothing
Set objImage = nothing
%>

men det er kludret og virker ikke.
Avatar billede softspot Forsker
15. september 2005 - 00:47 #7
Du skal fjerne den der next lige efter response.binarywrite i binary.asp
Avatar billede softspot Forsker
15. september 2005 - 00:48 #8
Faktisk kan du godt fjerne disse tre linier:

next
set filefolder=nothing
set ffs=nothing
Avatar billede chrisjon Nybegynder
15. september 2005 - 00:54 #9
ye jeg har fjernet dem og added lidt, den var noget kludret, men endten er det stien jeg har forkert ellers er det noget helt andet. fordi det viser slet ingen billeder på siden.
men de bliver skrevet i koden og gentaget alle de gange for hver fil der er i mappen.

binary ser sådan her ud nu

<%
strfile = Request.QueryString("file")
strfolder = Request.QueryString("folder")

dim objImage, intXSize, intYSize,

Set objImage = Server.CreateObject("AspImage.Image")

objImage.LoadImage(Server.MapPath("../../Inetpub/wwwroot/chrisjon_dkv2/gallery/' & strfolder & '/' & strfile & '"))

intXSize = 100
intYSize = 100
objImage.ImageFormat = 1
objImage.JPEGQuality = 70
ProgressiveJPEGEncoding = true
objImage.ResizeR intXSize, intYSize
Response.ContentType = "image/jpeg"
Response.binarywrite objimage.image

Set objImage = nothing
%>


og i view ser det sådan her ud.

<%
dim ffs, filefolder, strfilename
set ffs=Server.CreateObject("Scripting.FileSystemObject")
set filefolder=ffs.GetFolder("../../Inetpub/wwwroot/chrisjon_dkv2/gallery/" & foldername & "")

for each strfilename in filefolder.files

response.write "<img src='indhold/binary.asp?file=" & strfilename.name & "&folder=" & foldername & ".jpg'>"

next
set filefolder=nothing
set ffs=nothing
%>
Avatar billede softspot Forsker
15. september 2005 - 01:02 #10
Du skal i hvert tilfælde ikke have .jpg med i image-src

response.write "<img src='indhold/binary.asp?file=" & strfilename.name & "&folder=" & foldername & ".jpg'>"

Den skal rettes til:

response.write "<img src='indhold/binary.asp?file=" & strfilename.name & "&folder=" & foldername & "'>"


Prøv evt. at test binary.asp særskildt, altså ved at kalde den direkte i adressebaren i browseren med nogle parametre som du mener burde fungere. Hvis det spiller, vil billedet blive vist i browseren og du er 95% i mål. Gentag processen indtil du har fået stiangivelserne på plads i binary.asp og gå så tilbage til view.asp og indsæt kaldet til binary.asp i et img-tag og se det fungere...
Avatar billede chrisjon Nybegynder
15. september 2005 - 01:18 #11
okay jeg er pænt sikker på at jeg har fået det til at virke nu, jeg har en udløbet version af aspimage, og det ser ud til at alle billeder bliver skrevet nu, fordi den istedet for at vise billederne bare udskriver alle billeder som asp udløbt eller noget.

men når jeg uploader det til mit webhotel får jeg straks kæmpe problemer, fordi jeg kan ikke få path rigtig, og jeg aner ikke hvordan jeg kan gøre det.
Avatar billede chrisjon Nybegynder
15. september 2005 - 01:29 #12
jeg kan reelt ikke teste om det virker men jeg tror næsten at det virker, jeg skal bare finde ud af hvad den nye path for gallery er, jeg ved godt hvor den ligger på ftpen iforhold til de andre mapper osv, men jeg kan ikke finde ud af at linke til den.

men her er koden til binary.asp som nu virker måske.

<%
strfile = Request.QueryString("file")
strfolder = Request.QueryString("folder")

dim objImage, intXSize, intYSize

Set objImage = Server.CreateObject("AspImage.Image")

objImage.LoadImage(Server.MapPath("../../Inetpub/wwwroot/chrisjon_dkv2/gallery/' & strfolder & '/' & strfile & '"))

intXSize = 100
intYSize = 100
objImage.ImageFormat = 1
objImage.JPEGQuality = 70
ProgressiveJPEGEncoding = true
objImage.ResizeR intXSize, intYSize
Response.ContentType = "image/jpeg"
Response.binarywrite objimage.image

Set objImage = nothing
%>
Avatar billede softspot Forsker
15. september 2005 - 01:29 #13
Et typisk udgangspunkt for stier er rootfolderen på webserveren. Hvis du viser mig hvordan folderstrukturen på din webserver ser ud fra roden og ned til

1. dine billeder
2. det script som genererer siden med billederne på (view.asp)
3. det script som genererer billedet (binary.asp)

så kan vi måske finde en løsning på det.

Med disse stier:

/gallery/images/*.jpg
/view.asp
/indhold/binary.asp

vil jeg mene at din kode skal se således ud:

----------------------
binary.asp
----------------------

<%
strfile = Request.QueryString("file")
strfolder = Request.QueryString("folder")

dim objImage, intXSize, intYSize,

Set objImage = Server.CreateObject("AspImage.Image")

objImage.LoadImage(Server.MapPath("/gallery/" & strfolder & "/" & strfile))

intXSize = 100
intYSize = 100
objImage.ImageFormat = 1
objImage.JPEGQuality = 70
ProgressiveJPEGEncoding = true
objImage.ResizeR intXSize, intYSize
Response.ContentType = "image/jpeg"
Response.binarywrite objimage.image

Set objImage = nothing
%>


----------------------
view.asp:
----------------------
<%
dim ffs, filefolder, strfilename
set ffs=Server.CreateObject("Scripting.FileSystemObject")
set filefolder=ffs.GetFolder(Server.MapPath("/gallery/" & foldername))

for each strfilename in filefolder.files
  response.write "<img src='indhold/binary.asp?file=" & strfilename.name & "&folder=" & foldername & "'>"
next

set filefolder=nothing
set ffs=nothing
%>
Avatar billede chrisjon Nybegynder
15. september 2005 - 01:43 #14
er også hvad jeg har forsøgt men. det dutter ikke, jeg har også en som hedder gallery.asp og den er følgende af interrese
.............
gallery.asp
............
<table cellspacing="0px" cellpadding="0px" class="tbl_main_txt">
<tr>
<td valign="top" align="center" colspan="2">

<table cellspacing="0px" cellpadding="0px" class="tbl_news">
<tr>
<td class="td_news_top" align="left">
<h1><img src="images/h1_dot.gif" alt="h1_dot.gif">Gallery</h1>
</td>
</tr>
<tr>
<td class="td_news_txt" align="left">
<p>Here you will be able to view all the pictures i have taken with my 5mpix pentax optio 50 digital camera, and iam quite new to all this photography thing, so iam still under "training" to learn how to use the camera at its best. </p>
<p>So far you can view pictures i have taken at Aalborg carnival 2005, but many more will come in the future, and so far all the pictures is just listes on one page, but that will soon change.</p>
</td>
</tr>
</table>
<table cellspacing="0px" cellpadding="0px" class="tbl_news">
<tr>
<td class="td_news_top" align="left">
</td>
</tr>
<tr>
<td class="td_news_txt" align="left">
<%
dim fs,fo,x
set fs=Server.CreateObject("Scripting.FileSystemObject")
set fo=fs.GetFolder("/gallery/")

for each x in fo.SubFolders
  Response.write("<img src='images/h1_dot.gif' alt='h1_dot.gif'><a href='index.asp?indhold=viewgal&id=" & x.Name & "' target='_self'>" & x.Name & "</a>" & "<br />")
next

set fo=nothing
set fs=nothing
%>
</td>
</tr>
</table>

<tr>
<td align="left" valign="bottom">
<p class="p1">
<%
Set fs1 = Server.CreateObject("Scripting.FileSystemObject")
Set rs1 = fs1.GetFile(Server.MapPath("indhold/gallery.asp"))
modified = rs1.DateLastModified
%>
Last Updated:<%response.write(modified)
Set rs1 = Nothing
Set fs1 = Nothing
%>
</p>
</td>
<td align="right" valign="bottom">
<%
Set FS=Server.CreateObject("Scripting.FileSystemObject")
Set RS=FS.OpenTextFile(Server.MapPath("gallery_counter.txt"), 1, False)
fcount=RS.ReadLine
RS.Close
fcount=fcount+1
Set RS=FS.OpenTextFile(Server.MapPath("gallery_counter.txt"), 2, False)
RS.Write fcount
RS.Close
Set RS=Nothing
Set FS=Nothing
%>

<p class="p1">Pageviews:<%=fcount%><p>
</td>
</tr>
</table>

.............
viewgal.asp
............

<table cellspacing="0px" cellpadding="0px" class="tbl_main_txt">
<tr>
<td valign="top" align="center" colspan="2">
<p><a href="index.asp?indhold=gallery" target="_self">[Back To Overview]</a></p>
<br>

<table cellspacing="0px" cellpadding="0px" class="tbl_news">
<tr>
<td class="td_news_top1" align="left">
<h1><img src="images/h1_dot.gif" alt="h1_dot.gif">
<%
foldername = Request.QueryString("id")
response.write "" & foldername & ""
%>
</h1>
</td>
<td class="td_news_top1" align="right">
<p class='p1'> Saturday the 28th of May, 2005</p>
</td>
</tr>
<tr>
<td class="td_news_txt" align="left" colspan="2">
<p>
<%

Set readtekst=Server.CreateObject("Scripting.FileSystemObject")

Set readtekst2=readtekst.OpenTextFile(Server.MapPath("gallery/" & foldername & "/tekst/info.txt"), 1)
Response.Write(readtekst2.ReadAll)
readtekst2.Close

Set readtekst2=Nothing
Set readtekst=Nothing
%>

<br><br></p>
</td>
</tr>
<tr>
<td align="left" valign="top" colspan="2">
<%
dim ffs, filefolder, strfilename
set ffs=Server.CreateObject("Scripting.FileSystemObject")
set filefolder=ffs.GetFolder("gallery/" & foldername & "")

for each strfilename in filefolder.files

response.write "<img src='indhold/binary.asp?file=" & strfilename.name & "&folder=" & foldername & "'>"

next
set filefolder=nothing
set ffs=nothing
%>
</td>
</tr>
</table>

</td>
</tr>
</table>

............
binary.asp
............
<%
strfile = Request.QueryString("file")
strfolder = Request.QueryString("folder")

dim objImage, intXSize, intYSize

Set objImage = Server.CreateObject("AspImage.Image")

objImage.LoadImage(Server.MapPath("/gallery/' & strfolder & '/' & strfile & '"))

intXSize = 100
intYSize = 100
objImage.ImageFormat = 1
objImage.JPEGQuality = 70
ProgressiveJPEGEncoding = true
objImage.ResizeR intXSize, intYSize
Response.ContentType = "image/jpeg"
Response.binarywrite objimage.image

Set objImage = nothing
%>



Og mit folder system ser således ud.

..//
[indhold]= alle .asp filer, binary.asp viewgal.asp gallery.asp etc etc...
[gallery]
index.asp


Håber ikke at jeg gik for meget grasat her,
Avatar billede softspot Forsker
15. september 2005 - 01:52 #15
hmm... det kan jeg ikke lige gennemskue nu (læs: er lidt træt :)), og den folderstruktur du viser er lidt kryptisk fsva. ..//. Det er noget du har taget fra FTP-programmet eller hvad?

Anyway! Du kan altid finde den absolutte sti til roden af dit site ved at skrive:

Response.Write Server.MapPath("/")

Det kan være den kan kaste lidt lys over placeringen af dine filer...?

Smid evt. et link til dit site, så kan man måske se hvad der produceres af output.
Avatar billede softspot Forsker
15. september 2005 - 02:11 #16
Jeg synes dog at du nogen stedet (specielt i brugen af GetFolder) ikke benytter Server.MapPath... hvordan kan det være? Den skal vel også bruge en absolut sti (som peger på en folder under webserveren...
Avatar billede chrisjon Nybegynder
15. september 2005 - 02:16 #17
Okay det der var fandme smart nu fandt jeg stien og fik fixet det på alle siderne, men nu lister den bare en kæmpe liste med 100*100 billeder som bare er blanke.

du kan se det her. http://www.chrisjon.dk/index.asp?indhold=gallery

og binary ligger her http://www.chrisjon.dk/indhold/binary.asp
Avatar billede softspot Forsker
15. september 2005 - 02:22 #18
Det virker som om content-type ikke bliver sat korrekt i binary.asp...
Avatar billede softspot Forsker
15. september 2005 - 02:24 #19
Prøv at sætte dette ind

Response.AddHeader "Content-Type", "image/jpeg"

i stedet for

Response.ContentType = "image/jpeg"
Avatar billede chrisjon Nybegynder
15. september 2005 - 02:26 #20
<%
strfile = Request.QueryString("file")
strfolder = Request.QueryString("folder")

dim objImage, intXSize, intYSize

Set objImage = Server.CreateObject("AspImage.Image")

objImage.LoadImage(Server.MapPath("gallery/' & strfolder & '/' & strfile & '"))

intXSize = 100
intYSize = 100
objImage.ImageFormat = 1
objImage.JPEGQuality = 70
ProgressiveJPEGEncoding = true
objImage.ResizeR intXSize, intYSize
Response.AddHeader "Content-Type", "image/jpeg"
Response.binarywrite objimage.image

Set objImage = nothing
%>


har prøvet, ændrede ikke på noget.
Avatar billede softspot Forsker
15. september 2005 - 02:28 #21
Ligger gallery i roden?

Hvis ja, så skal du nok lige ændre denne

objImage.LoadImage(Server.MapPath("gallery/' & strfolder & '/' & strfile & '"))

til

objImage.LoadImage(Server.MapPath("/gallery/' & strfolder & '/' & strfile & '"))

for ellers vil den søge efter gallery under indhold (altså /indhold/gallery/...)
Avatar billede softspot Forsker
15. september 2005 - 02:30 #22
og så skal du holde dig til at bruge anførselstegn som streng-delimiter, for apostrof betyder udkommentering i VBScript. Altså:

objImage.LoadImage(Server.MapPath("/gallery/" & strfolder & "/" & strfile))
Avatar billede chrisjon Nybegynder
15. september 2005 - 02:35 #23
jeg prøver lige at liste folder igen

index.asp
indhold/binary.asp
indhold/viewgal.asp
indhold/gallery.asp
gallery/aalborg carnival 2005/billeder.jpg

så ledes er det hele listet.

og jeg har lige ændret det til /gallery og det ser ikke ud til at have nogen effekt
Avatar billede softspot Forsker
15. september 2005 - 02:36 #24
og anførselstegnene?
Avatar billede chrisjon Nybegynder
15. september 2005 - 02:38 #25
så virkede det sku, fejlen lå i "" men det ser ud til at det suger pænt meget, kraft, da det taget noget tid at loade alle billederne.
Avatar billede softspot Forsker
15. september 2005 - 02:39 #26
Ja, det var så mit næste forslag, nemlig at cache de små billeder, enten under upload, eller manuel aktivering af et script efter upload, eller første gang de blev vist...
Avatar billede chrisjon Nybegynder
15. september 2005 - 02:41 #27
tænker du på save.image
Avatar billede softspot Forsker
15. september 2005 - 02:43 #28
Jeg har ikke nogen erfaring med AspImage-kontrollen, men hvis den gemmer det skalerede billede, så ja.

Jeg tror du vil opnå den bedste effekt, hvis du skalerer dem idet de bliver uploadet (hvis altså ikke du smider dem op via ftp).
Avatar billede chrisjon Nybegynder
15. september 2005 - 02:46 #29
jeg smider dem dog op via ftp, også bruge et lille script til at scalere dem, desudne skal jeg også have fixet paging til det osv, der er stadig en del arbejde, men nu er jeg over det værste og har lært en masse nyttigt.
så jeg holder nok for idag, og forsætter imorgen så jeg kan færdig gøre mit galleri. og du vil nok se en ny tråd fra mig når jeg fusker rundt i lortet igen.

men hvordan tildeler jeg dig de 200point,
Avatar billede softspot Forsker
15. september 2005 - 02:48 #30
Jeg smider dette svar og så kan du vælge mig ude til venstre og acceptere mit svar...
Avatar billede chrisjon Nybegynder
15. september 2005 - 02:50 #31
well takker for hjælpen so far,
Avatar billede softspot Forsker
15. september 2005 - 02:56 #32
Husk at acceptere svaret :)
Avatar billede softspot Forsker
15. september 2005 - 02:56 #33
...og velbekomme :)
Avatar billede softspot Forsker
15. september 2005 - 03:00 #34
Tak for point :)
Avatar billede chrisjon Nybegynder
15. september 2005 - 03:02 #35
jeg skulle bare lige regne ud hvordan man gjorde først.
Avatar billede softspot Forsker
15. september 2005 - 03:07 #36
Ja, klart nok. Der er vist flere som har problemer med at finde ud af det system første gang...
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