Avatar billede jens_k Nybegynder
29. maj 2002 - 03:44 Der er 12 kommentarer og
3 løsninger

Simpelt ASP problem med ASPImage

Hejsa

Jeg havde ikke fået det til at virke alligevel.. Så nu spørger jeg igen !

Jeg har et problem med ASPImage.. Det jeg bruger den til er at resize JPG billeder...

Hvis jeg har har billedet til at ligge på mit webhotel køre det fint nok.. Problemet er bare at mine billeder ligger i min Access Database (Ikke kun linket til billedet, men selve billedet, ved brug af OLE-Object)..

Så det der skal ske er at den trækker billedet ud, resizer det, og viser det på siden..

Her er min ASP fil som burde gøre det.. Ved godt at den ikke virker.. Men hvordan tilretter jeg den så den virker ?

Her er filen jeg bruger når den skal hente billedet !
''''''' ASP '''''''
<!--#include file ="../conn.asp"-->
<%
set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open strDB

ImageID = Request.Querystring("ImageID")

SQL = "SELECT * FROM Products WHERE where ID=" & ImageID
set RS = Conn.Execute(SQL)

if not RS.eof then
    ' Clear out the existing HTTP header information
    Response.Expires = 0
    Response.Buffer = TRUE
    Response.Clear

    ' Change the HTTP header to reflect that an image is being passed.
    Response.ContentType = RS("mimetype")
    Response.BinaryWrite RS("bindata")
end if

    Response.ContentType = "image/jpeg"

    strPicture = Request.QueryString
    Set Image = Server.CreateObject("AspImage.Image")

    Image.LoadImage Server.MapPath(strPicture)

    intRatio = ((75 * 100) / Image.MaxX)
    intNewY = CInt(Image.MaxY * (intRatio / 100))
    Image.ResizeR 75, intNewY
    Image.ImageFormat = 1

    Response.BinaryWrite Image.Image
    Set Image = nothing   
%>
'''' ASP SLUT '''''''

Hvordan kan jeg gøre dette ?
Avatar billede a1a1 Novice
29. maj 2002 - 04:55 #1
jeg tror du skal gemme billedet først, derefter resize det. ( og så vise det)
(er ret sikker på at du ikke kan gøre det på den måde du gerne vil)

Du har også denne linie (kræver jo en sti til et billede, tror ikke lige den kan tage det fra en querystring (billedet bliver vel, heller ikke sendt som en querystring?))
Image.LoadImage Server.MapPath(strPicture)
Avatar billede keysersoze Ekspert
29. maj 2002 - 09:24 #2
hvis jeg nu må komme med et forslag; lad for guds skyld være med at gemme billeder i din access database - lav i stedet et tekstfelt, der indeholder filnavnet og gem billedet direkte på serveren.

access (og databaser på nettet i det hele taget) klarer slet ikke optimalt billeder på denne måde - så foruden at du får en mere optimeret side, så undgår du jo (når nu du siger at det virker når billedet ligger på serveren) de problemer du har nu
Avatar billede jens_k Nybegynder
29. maj 2002 - 17:04 #3
Jamen hvis jeg skal til at gemme billederne på serveren istedet.. Så har jeg et andet problem.. Jeg sidder med en database der har 30.000 billeder i sig... Hvordan får jeg dem ud på en gang ? Jeg gider ikke at skulle sidde og sige "Save As" 30.000 gange...
Avatar billede a1a1 Novice
29. maj 2002 - 17:06 #4
det kan du da lave et script til
;)
Avatar billede keysersoze Ekspert
29. maj 2002 - 17:12 #5
kører den database ikke meget sløvt med alle de billeder?

anyway - jeg har ikke prøvet at bruge aspimage på billeder i en database, så jeg kan desværre ikke hjælpe ydeligere
Avatar billede jens_k Nybegynder
29. maj 2002 - 20:57 #6
Næhh. Det køre fint nok..

Det er bare når jeg uploader billeder nu, så uploader jeg både Preview og Fullsize.. Hvis jeg kunne få ASPImage til at virke.. Så kunne jeg jo nøjes med at uploade Fullsize....

Jeg har 3 kolonner i min database som bliver brugt til det med billeder..

Filename (Indeholder filnavn)
MimeType (Indeholder filtype)
BinData (Indholder selve billedet)

Hvordan kan jeg lave et script som hiver alle billeder ud på en gang.. Så jeg er fri for at bruge "Save As" 30.0000 gange..

Jens K
Avatar billede a1a1 Novice
29. maj 2002 - 21:06 #7
du henter jo bare alle i databasen, løber dem i gennem og gemmer billederne et af gangen. :=
Avatar billede keysersoze Ekspert
29. maj 2002 - 21:06 #8
hvis du vil have dem ud, så kan du fx lave et almindeligt databaseudtræk, hvor der bare står "do while not rs.eof" og inde iden loop kan du gemme billedet

men ellers så upload til en "backup"-mappe og load billedet ind i aspimage derfra og gem så det rigtige billede samt det nye resizede i databasen og slet så det i backup-mappen
Avatar billede jens_k Nybegynder
29. maj 2002 - 21:09 #9
Ja.. Det ved jeg godt.. Jeg kan køre det hele igennem..

Men hvordan får jeg den til at gemme billedet på serveren.. Og med det filnavn som står i kolonnen "Filename" ?
Avatar billede keysersoze Ekspert
29. maj 2002 - 21:14 #10
jeg ved ikke hvordan de ligger i databasen - har som sagt ikke arbejdet med det... men du skal i hvert fald kigge på det der hedder FSO (file scripting object)

FSO kan bruges til at gemme og slette filer
Avatar billede a1a1 Novice
29. maj 2002 - 21:14 #11
du kan jo få aspimage til at gemme filen
while not oRs.eof
Image.SaveImage(oRs("filnavn") & ".jpg")
oRs.movenext
wend

:)
Avatar billede jens_k Nybegynder
29. maj 2002 - 21:15 #12
Jep.. Kender det godt.. Prøver det lige..
Avatar billede a1a1 Novice
29. maj 2002 - 21:15 #13
er dog ikke lige helt sikker på at det er SaveImage du skal bruge :)
Avatar billede jens_k Nybegynder
29. maj 2002 - 22:08 #14
A1.. Hvis jeg kunne bruge Save.Image funktionen.. Så kunne jeg også bruge ReSize.. problemet er netop at jeg ikke kan få billedet "ind i" ASPImage...

Jens K
Avatar billede jens_k Nybegynder
16. juni 2002 - 17:20 #15
Okay.. Det fik jeg ikke meget ud af... hehe
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