webForumDet fria alternativet

Ladda upp spärr?

ASP

14 svar · 354 visningar · startad av Bosse168

Medlem sedan nov. 20031 018 inlägg
Frågan#1

Jag har gjort så man kan ladda upp bilder när man är inloggad, nu är problemet att jag inte vill sätta en spärr på hur många bilder dom får ladda upp utan att dom bara ska kunna ladda upp 500Kb totalt.
Jag sparar in storleken i i bytes för tillfället och gör om storleken genom att använda denna kod:

Response.write Round((Rs("storlek") / 1024), 1) &"kB"

Någon snäll själ som kan hjälpa mig med detta för mig stora problem.

Medlem sedan nov. 20031 018 inlägg
#2

Sparar in det i kB nu

Medlem sedan nov. 20031 018 inlägg
#3

Ingen som vet hur en sådan spärr skulle se ut?
Använder ASPupload.

Medlem sedan feb. 200112 078 inlägg
#4

Har du kikat i manualen efter en storleks-property på komponenten? Kan vara värt att kolla upp.

Medlem sedan nov. 20031 018 inlägg
#5

Det finns det men med den kan jag inte kolla upp hur mycket som personen redan har laddat upp.

Medlem sedan feb. 200112 078 inlägg
#6

Gör såhär då:

lTotalSpace = 10000
lSpaceUsed = ditt_varde

Set Upload = Server.CreateObject("Persits.Upload")
Upload.SetMaxSize (lTotalSpace-lSpaceUsed), True

On Error Resume Next

Upload.Save "c:\upload"

' 8 = File too large
If Err.Number = 8 Then
   Response.Write "Filen är för stor!"
Else
   If Err <> 0 Then
      Response.Write "Ett fel uppstod: " & Err.Description
   Else
      Response.Write "Lyckades!"
   End If
End If

On Error Goto 0

Observera att en del av koden är ur huvudet, samt att manualen inte talar om vilken storhet den första parametern på SetMaxSize har, men jag antar att det är byte. Den andra (Boolean) skall vara True ifall filen skall vägras ifall den är för stor, eller False ifall den skall trunkeras.

Länk: http://www.aspupload.com/object_upload.html#SetMaxSize

Medlem sedan nov. 20031 018 inlägg
#7

lTotalSpace = 10000 hur mycket är det i kb?

Medlem sedan nov. 20031 018 inlägg
#8

va inget är lite morgon trött bara

Medlem sedan nov. 20031 018 inlägg
#9

Får detta fel messet:
Persits.Upload.1 error '800a0007'

Invalid MaxSize value.

/bild/upload.asp, line 24

Rad 24:
Upload.SetMaxSize (lTotalSpace-lSpaceUsed), True

Medlem sedan nov. 20031 018 inlägg
#10

fixade det utan att använda Upload.SetMaxSize med en enkel If sats:

If Rs("Summan")>500 Then
   Session("meddelande") = "Du har fyllt din utrymmes kvot."
   Response.Redirect "default.asp"
End If
Medlem sedan feb. 200112 078 inlägg
#11

Men det där kommer väl inte att fungera särskilt bra om de vill ladda upp fler filer? Om Rs("Summan") är t.ex. 499 så tillåter scriptet fortfarande uppladdning av filer, vilket är rätt på ett sätt, men fel på ett annat, då användaren i princip kan ta en 10 MB stor fil och köra upp utan att scriptet märker det.

Du måste kontrollera ifall filen som laddas upp inte är större än det utrymme som finns kvar på servern.

Medlem sedan nov. 20031 018 inlägg
#12

yepp jag märkte detta försökte mig på att få in File.Size i räkningen men fick detta fel mess:

Microsoft VBScript runtime error '800a01a8'

Object required: 'File'

Koden:
If summan + Round((File.Size / 1024), 1) > 100 Then

Medlem sedan feb. 200112 078 inlägg
#13

Du måste ange vad 'file' är.

set file = fso.getfile(server.mappath("dinfil"))

Grejen är ju den att FSO kan du inte använda det förrän filen faktiskt är på servern, och då är det ju (brutalt uttryckt) redan försent.

Medlem sedan nov. 20031 018 inlägg
#14

Sant hade hoppats på att slippa det.
Får väl först sätta en spärr som kollar fil storleken:

Upload.SetMaxSize 512000, True

Sedan efter jag laddat upp filen kan jag ju göra min koll:

If summan + Round((File.Size / 1024), 1) > 100 Then
   Session("meddelande") = "Du har fyllt din utrymmes kvot."

Set fso = CreateObject("Scripting.FileSystemObject")
if fso.FileExists(Server.MapPath("bilder\"& NewName & Ext &"")) then

fso.DeleteFile(Server.MapPath("bilder\"& NewName & Ext &""))
end if
Medlem sedan nov. 20031 018 inlägg
#15

Märkte att jag får fel felmeddelande:
Persits.Upload.1 error '800a0008'

Size of file P1010078.JPG exceeds the maximum allowed size of 512000 bytes.

Jag vill ju ha mitt egna:
If Err = 8 Then

Session("meddelande") = "Bilden du försöker ladda upp är för stor!"
Response.Redirect "default.asp"
Else

/bild/upload.asp, line 55

274 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)