11. maj 2003 - 15:51Der er
18 kommentarer og 1 løsning
Validering af Billede i upload
Hej Jeg uploader billeder på denne måde: --------- randomize n=int(10000000*rnd)
Set Upload = Server.CreateObject("Persits.Upload") Count = Upload.SaveToMemory Upload.SetMaxSize 50000, True For Each File in Upload.Files
Dim FileName FileName = File.ExtractFileName File.SaveAs "d:\Billeder\"& n & FileName Next ------------- Men det der "Upload.SetMaxSize 50000, True" virker ikke, jeg kan uploade ligeså store billeder/Filer som jeg har lyst til.
Jeg vil gerne: - at hvis billede er over 50000 bytes, så skal den returer en fejl - at man kun kan uploade gif og jpg
Fra deres hjemme side: The SetMaxSize method expects two arguments: the maximum file size (in bytes) and a flag indicating whether a file exceeding the limit should be rejected with an error exception thrown (if set to True) or truncated (if set to False).
Som jeg læser det så vil den komme en fejl hvis det er true.
<HTML> <BODY> <% Set Upload = Server.CreateObject("Persits.Upload") ' Limit file size to 50000 bytes, throw an exception if file is larger Upload.SetMaxSize 50000, True
' Intercept all exceptions to display user-friendly error On Error Resume Next
' Perform upload Upload.Save "c:\upload"
' 8 is the number of "File too large" exception If Err.Number = 8 Then Response.Write "Your file is too large. Please try again." Else If Err <> 0 Then Response.Write "An error occurred: " & Err.Description Else Response.Write "Success!" End If End If %>
Den sluger simpelhen alt, min kode ser sådan her ud: (jeg er ikke kommet til det med GIF og JPG endnu, kun det med størrelsen) ----------- randomize n=int(10000000*rnd)
Set Upload = Server.CreateObject("Persits.Upload") Count = Upload.SaveToMemory Upload.SetMaxSize 50000, True On Error Resume Next For Each File in Upload.Files
If Err.Number = 8 Then session("fejl") = "Dit billede er for stort, det må MAX fylde 50 kb." response.redirect "add_add.asp" Else If Err <> 0 Then session("fejl") = "Der opstod en fejl, brug denne besked ved henvendelse: " & Err.Description response.redirect "add_add.asp" End If End If
Dim FileName FileName = File.ExtractFileName File.SaveAs "d:\inetpub\wwwroot\Billeder\"& n & FileName Next -------------
Nu fejler den, men den fanger ikke min if-sætning, den kommer bare med en error i browseren, jeg har forsøgt at flytte rundt på if-sætningen: KODE: ---------- randomize n=int(10000000*rnd)
Set Upload = Server.CreateObject("Persits.Upload") Upload.SetMaxSize 50000, True Count = Upload.SaveToMemory
If Err.Number = 8 Then session("fejl") = "Dit billede er for stort, det må MAX fylde 50 kb." response.redirect "add_add.asp" Else If Err <> 0 Then session("fejl") = "Der opstod en fejl, brug denne besked ved henvendelse: " & Err.Description response.redirect "add_add.asp" End If End If
On Error Resume Next For Each File in Upload.Files
If File.ImageType <> "GIF" and File.ImageType <> "JPG" Then session("fejl") = "Billede skal være i formatet GIF eller JPG" response.redirect "add_add.asp" End If
Dim FileName FileName = File.ExtractFileName File.SaveAs "d:\inetpub\Billeder\"& n & FileName
Next ---------- FEJL ---------- Size of file C:\Documents and Settings\Administrator\Skrivebord\side3_og_4.pdf exceeds the maximum allowed size of 50000 bytes. ---------- på denne linie: ---------- Count = Upload.SaveToMemory ----------
Jeg forstyrer kige igen, det virker åbenbart ikke afligevel, uanset hvilken filtype jeg uploader om det er PDF eller JPG eller DOC så bliber FileType sat lig med JPG KODE ----------- For Each File in Upload.Files Dim FileName FileName = File.ExtractFileName
Dim FileType FileType = File.ImageType response.write FileType
If FileType <> GIF AND FileType <> JPG AND FileType <> JPEG Then session("fejl") = "Billede skal være i formatet GIF eller JPG" response.write FileType 'response.redirect "add_add.asp" End If
File.SaveAs "d:\inetpub\Billeder\"& n & FileName Next
Det har jeg prøvet, men det er ikke if-sætningen der er "forkert" det er File.ImageType der retunerer JPG så uanset hvad jeg uploader, så har FileType hele tiden værdien JPG
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.