Avatar billede mettecarsten Nybegynder
03. februar 2007 - 21:42 Der er 9 kommentarer og
1 løsning

Rename under / efter upload af billede

Hej eksperter

Jeg har fundet nedenstående kode, som uploader og resizer perfekt - problemet er bare, at den gemmer med original billedefilnavn. Jeg vil høre, om nogle lige kunne rette i koden, så det er muligt selv at bestemme, hvad den uploadede fil skal gemmes som. Virkelig på forhånd tak.

<%
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 = (ResizedX / objImg.MaxX) * objImg.MaxY
            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
%>
<form method="post" enctype="multipart/form-data" action="upload.asp?s=upload">
<input type="file" name="file1">
<input type="submit" value="Upload">
</form>
<%
End If
%>
Avatar billede madeindk Nybegynder
03. februar 2007 - 21:54 #1
<%
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
   
        strNavn = "nyenavn"

        if X > ResizedX then
            ResizedY = (ResizedX / objImg.MaxX) * objImg.MaxY
            objImg.ResizeR ResizedX, ResizedY
            objImg.FileName = (Server.MapPath(sti & strNavn))
            objImg.SaveImage
        end if
   
    Set objImg = Nothing
end function
%>
Avatar billede mettecarsten Nybegynder
03. februar 2007 - 22:01 #2
Takker, men kan du kort kommentere det, da jeg ikke får noget til at virke, og egentlig ikke helt ved, hvad der skal rettes :-)
Avatar billede madeindk Nybegynder
03. februar 2007 - 22:04 #3
<%
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
   
        ' Definerer navn på filen
        ' Denne variabel bliver hentet nedeunder i linien objImg.Filename
        strNavn = "nyenavn"

        if X > ResizedX then
            ResizedY = (ResizedX / objImg.MaxX) * objImg.MaxY
            objImg.ResizeR ResizedX, ResizedY
            objImg.FileName = (Server.MapPath(sti & strNavn))
            objImg.SaveImage
        end if
   
    Set objImg = Nothing
end function
%>
Avatar billede mettecarsten Nybegynder
03. februar 2007 - 22:12 #4
Helt perfekt :-) Den behøver dog ikke gemme både original og "nyenavn". Hvordan slettes lige originalen? Og en lille ting mere, hvis det ikke er for meget - hvis jeg forsøger f.eks. at uploade et 2 mio. pixels billede, får jeg bare følgende meddelelse:

Script timed out

/upload2.asp

The maximum amount of time for a script to execute was exceeded. You can change this limit by specifying a new value for the property Server.ScriptTimeout or by changing the value in the IIS administration tools.

Kan "tiden" nemt ændres?

Virkelig på forhånd tak. Smid et svar og du har fortjent alle point.
Avatar billede mettecarsten Nybegynder
03. februar 2007 - 22:29 #5
Det med "Script timed out" er nu klaret, selvfølgelig med Server.ScriptTimeout
Avatar billede mettecarsten Nybegynder
03. februar 2007 - 22:34 #6
Det er nu godnat-tid. Lukker nu, og giver dig point i morgen.
Avatar billede madeindk Nybegynder
03. februar 2007 - 22:39 #7
<%
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
   
        ' Definerer navn på filen
        ' Denne variabel bliver hentet nedeunder i linien objImg.Filename
        strNavn = "nyenavn"

        if X > ResizedX then
            ResizedY = (ResizedX / objImg.MaxX) * objImg.MaxY
            objImg.ResizeR ResizedX, ResizedY
            objImg.FileName = (Server.MapPath(sti & strNavn))
            objImg.SaveImage
        end if
   
    Set objImg = Nothing
   
    ' Opretter objekt til sletning (FSO)
    Set FsoObj = Server.CreateObject("Scripting.FileSystemObject")
   
    ' Angiver sti til billede
    strSource = Server.Mappath(sti & navn)
   
    ' Tjekker om filen eksisterer
    If FsoObj.FileExists(strSource) Then
        FsoObj.DeleteFile(strSource) ' Sletter filen - hvis den eksisterer
    End if
   
    ' Rydder objekt
    Set FsoObj = Nothing
   
end function
%>
Avatar billede madeindk Nybegynder
03. februar 2007 - 22:40 #8
Svar.
Avatar billede mettecarsten Nybegynder
04. februar 2007 - 06:12 #9
Helt perfekt - tusind tak for hjælpen!
Avatar billede madeindk Nybegynder
04. februar 2007 - 15:09 #10
Tak for point, det var godt du fik det til at virke :-)
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