15. september 2005 - 00:05Der 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
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
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.
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:
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.
<% dim ffs, filefolder, strfilename set ffs=Server.CreateObject("Scripting.FileSystemObject") set filefolder=ffs.GetFolder("../../Inetpub/wwwroot/chrisjon_dkv2/gallery/" & 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...
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.
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.
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)
---------------------- 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
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 %>
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.
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...
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.
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...
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.
Ja, klart nok. Der er vist flere som har problemer med at finde ud af det system første gang...
Synes godt om
Ny brugerNybegynder
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.