09. maj 2004 - 11:48Der er
7 kommentarer og 2 løsninger
AspSmartUpload - 2 spørgsmål
Jeg har to spørgsmål til følgende kode:
for each file in upload.Files if (File.FileExt <> ".jpg") or (File.FileExt <> ".jpeg") or (File.FileExt <> ".zip") then response.redirect "index.asp?page=bestil.asp&mode=wrongext" end if If not file.IsMissing Then filnavn = sti & file.filename file.saveas Server.MapPath(filnavn) Photo = File.fileName FilStiNavn = sti & File.FileName & file.FileExt else FilStiNavn = "" end if next
1. Jeg forsøger at kontrollerer om filnavn hedder andet end ".jpg" eller ".jpeg" eller ".zip" I så fald, må filen ikke uploades - men det virker ikke
2. Hvis filnavn allerede eksisterer, skal den tildeles "_1" og hvis den eksister skal den hedde "_2" o.s.v.
if (File.FileExt <> ".jpg") and (File.FileExt <> ".jpeg") and (File.FileExt <> ".zip") then response.redirect "index.asp?page=bestil.asp&mode=wrongext" end if
for each file in upload.Files if (File.FileExt <> ".jpg") or (File.FileExt <> ".jpeg") or (File.FileExt <> ".zip") then bad_files = bad_files & file.filename & "<br>" ' response.redirect "index.asp?page=bestil.asp&mode=wrongext" ' end if else If not file.IsMissing Then filnavn = sti & file.filename file.saveas Server.MapPath(filnavn) Photo = File.fileName FilStiNavn = sti & File.FileName & file.FileExt else FilStiNavn = "" end if end if next
if bad_files <> "" then bad_files = left(bad_files, len(bad_files) - len("<br>")) ' fjern det sidste "<br>" response.write "<br><br>Følgende filer kunne ikke oploades, da det er forkert format:<br>" & bad_files end if
Du må lave et loop som tjekke om filen findes, samt bruge FSO til at tjekke som filen findes. Så dette kode.
If not file.IsMissing Then filnavn = sti & file.filename file.saveas Server.MapPath(filnavn) Photo = File.fileName FilStiNavn = sti & File.FileName & file.FileExt else FilStiNavn = "" end if
bliver til noget som dette:
If not file.IsMissing Then Set fso = Server.CreateObject("Scripting.FileSystemObject") filnavn = sti & file.filename i=1 do while fso.FileExists(Server.MapPath(filnavn)) filnavn = replace(file.filename,"."&file.FileExt,"") filnavn = sti & filnavn & "_" & i & "." & file.FileExt i=i+1 loop file.saveas Server.MapPath(filnavn) Photo = File.fileName FilStiNavn = sti & File.FileName & file.FileExt else FilStiNavn = "" end if
File.FileExt udskriver intet punktum .. Iøvrigt udskriver den for det meste i uppercase... derfor kan du ikke validere på det.. prøv at ændre linien til
if (Lcase(File.FileExt) <> "jpg") or (Lcase(File.FileExt) <> "jpeg") or (LCase(File.FileExt) <> "zip") then
superior >> helt iorden :) Jeg lagde bare mærke til det..
Husk også at Lcase() dine file.fileExt.
Held og lykke :o)
/Mads
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.