14. december 2002 - 15:24Der er
17 kommentarer og 2 løsninger
ASPUpload - sammenlign størrelser (kb)
Hej
Jeg har brug for et script, som sammenligner et submittet billedes størrelse (kb) med de billeder, som allerede er blevet submittet (og derved er blevet lagt ind på serveren). Hvis scriptet finder ud af, at størrelsen (kb) af det submittede billede er præcis lig med et billede, der allerede ligger på serveren, så skal den sige ”hov stop”.
Brug af AI afslører de svagheder, virksomheder allerede har opbygget gennem års cloud-transformation, nye SaaS-løsninger og fragmenterede sikkerhedssystemer.
set FSO = server.createObject("Scripting.FileSystemObject") Filepath = Server.MapPath("minfil.jpg") if FSO.FileExists(Filepath) Then set file = FSO.GetFile(Filepath) FileSize = file.Size
Sådan finder du en fils størrelse med file system objectet
set FSO = server.createObject("Scripting.FileSystemObject") Filepath = Server.MapPath("minfil.jpg") if FSO.FileExists(Filepath) Then set file = FSO.GetFile(Filepath) FileSize = file.Size end if
'Med asp upload kan du finde billedet størrelse sådan: NewFileSize = Upload.TotalBytes
if FilseSize = NewFileSize then response.write "Hov Stop" end if
Scriptet mangler bare lige at returnere navnetfil på den fil, som allerde ligger på serveren (altså den fil der har den samme størrelse, som den fil der som lige er blevet uploadet).
' find det nye billedes str. NewFileSize = Upload.TotalBytes
' kald funktion der checker om filen findes ret = checkfile(upload.file , newfilesize)
' udsriv resultat response.write ret
Function checkfile(newfile,newsize)
set FSO = server.createObject("Scripting.FileSystemObject") Filepath = Server.MapPath(newfile) if FSO.FileExists(Filepath) Then set file = FSO.GetFile(Filepath) FileSize = file.Size
if FilseSize = NewFileSize then checkfile=filepath & " findes allerede, den er " & filesize & " bytes" else checkfile=filepath & " findes allerede, men den har ikke samme størrelse som den nye fil." end if else checkfile = "Filen findes ikke"
Prøv lige at check hvad den udskriver af størrelser.
' find det nye billedes str. NewFileSize = Upload.TotalBytes
' kald funktion der checker om filen findes
response.write "ny str = " & newfilesize & "<br>"
ret = checkfile(upload.file , newfilesize)
' udsriv resultat response.write ret
Function checkfile(newfile,newsize)
set FSO = server.createObject("Scripting.FileSystemObject") Filepath = Server.MapPath(newfile) if FSO.FileExists(Filepath) Then set file = FSO.GetFile(Filepath) FileSize = file.Size
response.write "gl str = " & filesize & "<br>"
if FilseSize = NewFileSize then checkfile=filepath & " findes allerede, den er " & filesize & " bytes" else checkfile=filepath & " findes allerede, men den har ikke samme størrelse som den nye fil." end if else checkfile = "Filen findes ikke"
ny str = 2833 gl str = 1392 d:\home\selvetdk\www\grafik\artikler\!nlp_europe(4).gif findes allerede, men den har ikke samme størrelse som den nye fil.
(Parentesen skaber scriptet selv, så alle filnavne er unikke.)
Jeg har oploadet den samme fil flere gange og scriptet siger det samme hver gang, ovenstående. Jeg ved ikke hvor den får størrelsen "2833" fra, men den anden størrelse er korrekt, dvs. at det er den størrelse som nye oploadede fil har.
set FSO = server.createObject("Scripting.FileSystemObject") Filepath = Server.MapPath(newfile) if FSO.FileExists(Filepath) Then set file = FSO.GetFile(Filepath) response.write "gl filnavn = " & filepath & "<br>" FileSize = file.Size
response.write "gl str = " & filesize & "<br>"
if FileSize = NewFileSize then checkfile=filepath & " findes allerede, den er " & filesize & " bytes" else checkfile=filepath & " findes allerede, men den har ikke samme størrelse som den nye fil." end if else checkfile = "Filen findes ikke"
nyt filnavn = /grafik/artikler/!nlp_europe(1)(6).gif ny str = 2834 gl filnavn = d:\home\selvetdk\www\grafik\artikler\!nlp_europe(1)(6).gif gl str = 1392 d:\home\selvetdk\www\grafik\artikler\!nlp_europe(1)(6).gif findes allerede, men den har ikke samme størrelse som den nye fil.
On Error Resume Next Count = Upload.Save(Server.MapPath(strImageDir))
For Each File in Upload.Files strNAVN = strImageDir & File.ExtractFileName Next
If Err.Number = 8 Then sendBack("Billedet må ikke overstige en størrelse af 10 KB. Komprimer enten billedet og prøv igen eller vælg et allerede indsendt billede ved at klikke på 'Hent', som findes nedenstående.") 'Else 'If Err <> 0 Then 'sendBack("Prøv igen - der opstod en teknisk fejl: " & Err.Description & ".") 'end if end if
if Upload.Form("link2") = "" then
If fileSizeCheck(strNAVN) then 'find det nye billedes str. NewFileSize = Upload.TotalBytes
' kald funktion der checker om filen findes
ret = checkfile(strNAVN , newfilesize)
' udsriv resultat response.write ret insertArticleInDatabase (strNAVN) End if End if
if not Upload.Form("link2") = "" then strNAVN = Upload.Form("link2")
if ifFileExists (strNAVN) then insertArticleInDatabase (strNAVN) end if end if
'if strNAVN = "" then 'sendBack("Linket er gået tabet - luk vinduet og forsøg igen.") 'end if 'else 'response.redirect("start.asp") end if
Set FSO = CreateObject("Scripting.FileSystemObject") strNAVN2 = Server.MapPath(strNAVN) If FSO.FileExists(strNAVN2) Then ifFileExists = true else sendBack("Det angivede billede på Selvet blev ikke fundet.") end if
end function
function fileSizeCheck (strNAVN)
Dim fso, f, filespec
filespec = Server.Mappath(strNAVN) Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso.GetFile(filespec)
If f.Size = 0 then
fileDelete(strNAVN) sendBack("Det angivede billede på din computer blev ikke fundet.") else 'response.write "<br>størrelse: " & f.Size fileLengthCheck = true end if
end function
Function fileLengthCheck(strNAVN)
Set objImg=Server.CreateObject("ImgSize.Check") objImg.FileName = Server.MapPath(strNAVN)
If objImg.Width = 0 And objImg.Height = 0 then fileDelete(strNAVN) sendBack("Filformatet kunne ikke genkendes, måske fordi filen ender på .gif i stedet for .jpg eller omvendt. Omdøbe filens efternavn til det korrekte filformat og prøv igen.") else If objImg.Width = 80 And objImg.Height = 100 Then fileLengthCheck = true Else fileDelete(strNAVN) sendBack("Den tilladte billedbredde er 80 pixels, og den tilladte billedhøjde er 100 pixels. Dit billede har en højde af " & objImg.Height & " pixels og en bredde af " & objImg.Width & " pixels.") End If end if
end function
function insertArticleInDatabase (strNAVN)
On error resume next
Set myConn=Server.CreateObject("ADODB.Connection") myConn.Open ("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE="+server.Mappath("/db/selvet.mdb"))
strSQL1 = "Select Max(CInt(url_samle)) AS MyUrlSamle from Search WHERE isNumeric(url_samle)" set rs1 = myConn.execute(strSQL1) taeller = rs1("MyUrlSamle") + 1 grafik = "<IMG SRC=" & strNAVN & " BORDER=1 width=80 height=100 ALIGN=LEFT VALIGN=TOP>" samle = "<A CLASS=Link2 HREF=/dbsite/default.asp?id=58&samle=" & taeller & "&type=artikel_web>" if Upload.Form("link") = "" then link = "fejl" else link = Upload.Form("link") end if
If myConn.Errors.Count > 0 Then response.write "<script>alert('Din artikel er ikke blevet oprettet, da der opstod en fejl. Redaktøren vil automatisk blive underrettet herom, så fejlen kan blive lokaliseret.');</script>" End If
end function
Function fileDelete(strNAVN) Set fso = CreateObject("Scripting.FileSystemObject") On error resume next fso.DeleteFile(Server.MapPath(strNAVN)) Set fso = Nothing End Function
set FSO = server.createObject("Scripting.FileSystemObject") Filepath = Server.MapPath(newfile) if FSO.FileExists(Filepath) Then set file = FSO.GetFile(Filepath) response.write "gl filnavn = " & filepath & "<br>" FileSize = file.Size
response.write "gl str = " & filesize & "<br>"
if FileSize = NewFileSize then checkfile=filepath & " findes allerede, den er " & filesize & " bytes" else checkfile=filepath & " findes allerede, men den har ikke samme størrelse som den nye fil." end if else checkfile = "Filen findes ikke"
nyt filnavn = /grafik/artikler/!nlp_europe(1)(7).gif ny str = 2827 gl filnavn = d:\home\selvetdk\www\grafik\artikler\!nlp_europe(1)(7).gif gl str = 1392 d:\home\selvetdk\www\grafik\artikler\!nlp_europe(1)(7).gif findes allerede, men den har ikke samme størrelse som den nye fil.
Prøv lige at køre dette script <% set FSO = server.createObject("Scripting.FileSystemObject") Filepath = Server.MapPath("d:\home\selvetdk\www\grafik\artikler\!nlp_europe(1)(7).gif ") if FSO.FileExists(Filepath) Then set file = FSO.GetFile(Filepath) FileSize = file.Size end if
Jeg kan også fortælle, at "if FSO.FileExists(Filepath)" ikke bliver sand, hvilket vil sige, at filen ikke eksisterer... men det gør den nu alligevel, hvilket man selv kan se ovenstående ved udskrivningen af dets placering.
Jeg har brug for et hurtigt svar, så jeg bliver nødt til at lukke nu. Jeg takker for hjælpen.
Synes godt om
Ny brugerNybegynder
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.