29. september 2006 - 10:27Der er
11 kommentarer og 1 løsning
Split en sti+filnavn
Jeg har en File Upload funktion, der uploader via AspSmartUpload. Men da AspSmartUpload altid overskriver eksisterende filer har jeg brug for at lave noget kode, før den uploader. Til det skal jeg udtrække filnavet fra den sti, brugeren indtaster.
Uploader den kode bare ikke billedet og overskriver evt. eksisterende billedenavn?
Jeg vil netop undgå at den overskriver eksisterende filer med samme filnavn, men tilgengæld smider folk tilbage til upload siden med en "filnavn eksisterer allerede" besked.
Jeg vil foreslå at lave en funktion der giver alle billeder et unikt filnavn når de bliver uploadet. Så behøves du ikke at kontrollere filnavne fremover.
ser vist ud til at man alligevel kan få den fulde sti; FilePathName
anyway - nu ved jeg ikke præcis hvad du vil frem til men det lyder lidt smartere at angive unikke filnavne. Hvis der endelig er en grund til det kan du bruge .FileName til at få filnavnet ud og så vha FSO checke op på om filen eksisterer i forvejen.
Det du er ude i virker heller ikke hverken særlig logisk eller hensigsmæssigt - hvis nu der er to filer vil du kun kunne viderestille 1 gang så et loop virker underligt at have. Endelig lukker du ikke for det du har initialiseret hvilket er spild af ressourcer.
dublet = false Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload") mySmartUpload.Upload If MySmartUpLoad.Files.Item("teaserbillede").FileName <> "" then 'start loop med FSO If LCase(MySmartUpLoad.Files.Item("formfeltnavn").FileExt) = LCase(filnavn fra fso) Then dublet = true End If 'loop If dublet = false Then mySmartUpload.files.item("formfeltnavn").SaveAs "billednavn.gif" End If End If Set mySmartUpload = Nothing
strTargetPath = Server.MapPath("/Upload") Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")
mySmartUpload.Upload
For each file In mySmartUpload.Files SQL = "SELECT * FROM produkter WHERE VareFilNavn = '" & file.FileName & "'" set rs1 = conn.execute(SQL) if not rs1.eof then response.redirect "test.asp?file=" & file.FileName end if set rs1 = nothing
Next
Set mySmartUpload = Nothing str = mySmartUpload.Save(strTargetPath)
Så vidt jeg kan se, nulstiller jeg da recordsettet. Men korrekt...smartupload skal også nulstilles.
Ja, valgte at gemme filnavnet i basen, da jeg indså at det også kunne bruges til andet på sitet. Men det virker nu. Du får lidt points for dine gode forslag og de informerende indlæg. :)
du nulstiller først efter du redirecter - altså når den slet ikke til den linie der nulstiller.
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.