Avatar billede mettecarsten Nybegynder
24. maj 2007 - 11:06 Der er 6 kommentarer og
1 løsning

Gemme billede korrekt ved upload og begrænsning

Hej eksperter

Jeg bruger denne geniale upload+resize funktion:

<%
            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/" & Session("Bruger") & "/" & file1.FileName)
       
          SQL = "INSERT INTO Upload(Bruger, Billede)"
            SQL = SQL & "Values("
            SQL = SQL & "'" & Session("Bruger") & "',"
            SQL = SQL & "'" & file1.FileName & "'"
            SQL = SQL & ")"
           
            Conn.Execute(SQL)

        Response.Write("<font face='Verdana' color='#000000' size='2'>Du har netop uploadet dette billede: " & file1.FileName & "</font><p>")
        call resize("/upload/" & Session("Bruger") & "/",file1.FileName,260)
        Response.Write("<font face='Verdana' color='#000000' size='2'><img src=""/upload/" & Session("Bruger") & "/" & file1.FileName & """ title=""Dit billede er nu uploadet""></font><br>")
        intCount = intCount + 1
      End If
  Next

Response.Write("<p><a href='adminsideupload.asp'><font face='Verdana' color='#666666' size='2'>>> Upload nyt billede</font></a><p>")

Else
%>

Der er dog opstået 2 mindre problemer, som bare driller mig :-)

1) Der må kun uploades .jpg-filer
2) Det giver lidt problemer, hvis en bruger har gemt billedet på harddisken med et mellemrum i filnavnet

Så hvordan skal koden ændres, så der kun kan uploades .jpg-filer + ændre filnavnet, hvis billedefilen har et mellemrum, f.eks. erstatte mellemrum med _.

På forhånd tak.
Avatar billede korup Nybegynder
24. maj 2007 - 11:17 #1
Du kan i skifte

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

med

file1.SaveAs("/upload/" & Session("Bruger") & "/" & replace(file1.FileName" ", "_"))

Dette fjerner space i filnavn.

Jeg mener du kan bruge denne til at beskrive tilladte filtyper:

'limit the file extensions to pictures files
mySmartUpload.allowedFilesList="gif,jpg"

/korup
Avatar billede mettecarsten Nybegynder
24. maj 2007 - 11:28 #2
Det lyder egentlig meget fornuftigt, men får fejlmelding for ændring af filnavn:

Microsoft VBScript compilation error '800a03ee'

Expected ')'

/indhold/adminsideupload.asp, line 44

file1.SaveAs("/upload/" & Session("Bruger") & "/" & replace(file1.FileName" ", "_"))
--------------------------------------------------------------------------^

Umiddelbart passer antallet af )?
Avatar billede mettecarsten Nybegynder
24. maj 2007 - 11:34 #3
Er formentlig løst - mangler et komma i linien:

file1.SaveAs("/upload/" & Session("Bruger") & "/" & replace(file1.FileName, " ", "_"))
Avatar billede mettecarsten Nybegynder
24. maj 2007 - 12:11 #4
Så begynder det at lysne :-)

Kan godt få det til at virke med at ændre mellemrum til _ - hvad nu hvis, der også er et , i billedefilen - hvordan kan koden ændres, så både et mellemrum og et , vil blive erstattet af _?

Derudover kan jeg desværre ikke få det til at virke med begrænsningen til kun jpg - indsætter:

mySmartUpload.Upload
  'limit the file extensions to pictures files
  mySmartUpload.allowedFilesList="jpg"

men kan stadig uploade f.eks. .gif?
Avatar billede mettecarsten Nybegynder
24. maj 2007 - 12:29 #5
Problemet omkring upload af andet end .jpg er løst :-)

Nu mangler kun erstatningen af .. til _ - husk også at smide et svar, så du kan få de velfortjente point :-)
Avatar billede mettecarsten Nybegynder
24. maj 2007 - 12:54 #6
Så er det hele løst :-) :-)

Smid et svar for at få point - din kommentar gav retningspilen :-)
Avatar billede korup Nybegynder
24. maj 2007 - 13:07 #7
Svar
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