Avatar billede mettecarsten Nybegynder
08. juni 2006 - 20:41 Der er 2 kommentarer og
1 løsning

Upload og resize billeder

Hej eksperter

Jeg har fundet mange indlæg omkring mit spg., men jeg får det desværre ikke til at virke! så derfor dette spg.

Jeg kører i dag med nedenstående kode, men det giver meget bøvl, at billedet ikke må fylde mere end 50kb - når det samme kan opnås med resize. Mit ønske er, at det uploadede billede skal få størrelsen 300 x 200 pixels.

<%

Id = Session("hid")

Dim objUpload ' Definer en variabel til objektet

' Opret objektet så vi kan begynde at arbejde med det
Set objUpload = Server.CreateObject("aspSmartUpload.SmartUpload")

' Only allow txt or htm files
objUpload.AllowedFilesList = "jpg, jpeg"

' Her sætter vi en begrænsning på filstørrelsen,
' for at undgå at der bliver uploadet alt for store filer
' En maksimal størrelse på 50Kb må være nok
objUpload.MaxFileSize = 50000

' For at undgå at siden bare stopper og for at vi
' kan fange fejlen hvis filen er for stor, slår vi
' fejl-check til
On Error Resume Next

' Foretag upload processen
objUpload.Upload

if not objUpload.files.item(1).isMissing then
objUpload.files.item(1).saveas "/" & Id & "/1.JPG"
end if
if not objUpload.files.item(2).isMissing then
objUpload.files.item(2).saveas "/" & Id & "/2.JPG"
end if
if not objUpload.files.item(3).isMissing then
objUpload.files.item(3).saveas "/" & Id & "/3.JPG"
end if
if not objUpload.files.item(4).isMissing then
objUpload.files.item(4).saveas "/" & Id & "/4.JPG"
end if

' Server.MapPath() benyttes her for at give
' upload objektet den faktiske sti i stedet for den virtuelle.

' Undersøg om der opstod en fejl
If Err Then
  ' Der opstod en fejl
Response.Redirect "uploadbilledefejl.asp"
Else
  ' Nej - det gik godt
Response.Redirect "uploadbilledeok.asp"
End If

' Så er vi færdige, så vi rydder pænt op efter os
Set objUpload = Nothing

%>

Hvad skal rettes til?

På forhånd tak.
Avatar billede madeindk Nybegynder
08. juni 2006 - 21:30 #1
Du retter maximum størrelsen på filen i linien:
objUpload.MaxFileSize = 50000

Men jeg kan se du bruger aspSmartUpload og det komponent kan desværre ikke resize billeder - der skal du ud noget der hedder AspImage, det komponent koster penge - men tjek om din udbyder ikke understøtter det hvis du ikke har egen server :-)
Avatar billede mettecarsten Nybegynder
09. juni 2006 - 09:26 #2
Jeg vil rigtig gerne kunne resize. Har prøvet med dennne kode:

<%
function resize(sti,navn,nyX)
    Set objImg = Server.CreateObject("AspImage.Image")
        objImg.PadSize = 0
        objImg.LoadImage Server.MapPath(sti & navn)
        objImg.GetImageFileSize Server.MapPath(sti & navn), X, Y
   
        ResizedX = nyX
        objImg.MaxX = X
        objImg.MaxY = Y
   
        if X > ResizedX then
            ResizedY = 200
            objImg.ResizeR ResizedX, ResizedY
            objImg.FileName = (Server.MapPath(sti & navn))
            objImg.SaveImage
        end if
   
    Set objImg = Nothing
end function

If Request("s") = "upload" Then

  Dim mySmartUpload
  Dim file1
  Dim intCount
  intCount=0

  Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")

  mySmartUpload.Upload

  For each file1 In mySmartUpload.Files

      If not file1.IsMissing Then

        file1.SaveAs("/upload/" & file1.FileName)

        Response.Write("FileName = " & file1.FileName & "<br>")
        call resize("upload/",file1.FileName,300)
        Response.Write("<img src=""upload/" & file1.FileName & """ title=""Your uploaded image""><br>")
        intCount = intCount + 1
      End If
  Next

  Response.Write(intCount & " file(s) uploaded.<BR>")
Else
%>

som også fungerer godt, men har desværre ikke rigtig held med at rette i forskellige oplysninger. Jeg vil gerne have billederne i størrelsen 300 x 200, men går også fint med den eksisterende kode, men ikke, hvis jeg begynder at ændre på den sti, hvor billedet skal gemmes. Har ændret:

file1.SaveAs("/upload/" & file1.FileName)
til
file1.SaveAs("/upload/" & Id & "/1.JPG") (Id = 1 er indsat tidligere)

hvilket også gemmer billedet korrekt, men det er nu IKKE blevet resized???

Er der nogen som kan hjælpe????
Avatar billede mettecarsten Nybegynder
09. juni 2006 - 13:06 #3
Lukker spg. og starter det som et nyt spg. med AspImage - og lidt flere point, da det bare vil være godt, hvis det kan lykkedes :-)
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