Avatar billede thomas-k Nybegynder
07. juli 2007 - 15:13 Der er 7 kommentarer og
1 løsning

ASPsmartupload problem

Jeg uploader nogle filer med aspsmartupload, samtidig med at navnet på filerne indsættes i min access database. Når et upload felt fra formen ikke udfyldes, indsættes "ingenting" også i databasen. Dette vil jeg gerne undgå, hvis der findes et filnavn i forvejen. Derfor har jeg prøvet med dette og mange andre ting uden held:

File1 = objUpload.Files.Item("File1").FileName
If not File1 is nothing Then
strSQL = "Update tabel set File1='" & File1 & "' where ID= " & objUpload.Form("ID")
Conn.Execute(strSQL)
End if

Men jeg kan ikke få det til at virke... Den indsættes stadig "ingenting". Nogle der kan hjælpe mig?
Avatar billede loukas Mester
07. juli 2007 - 16:53 #1
Øøh, Jeg skal lige være sikker.
1. Bruger skal ikke kunne submitte et tomt felt.
2. Du skal have unikke filnavne således at "gamle" filer ikke overskrives.

1. Er nok nemmest med noget validering med javascript på klienten.
2. Sørg for at alle filer får et unikt navn som ikke eksisterer i DB.
F.eks.:
strFilnavn = file1.filename
rFilNavn = now()
rFilNavn = Replace(rFilNavn,":", "")
rFilNavn = Replace(rFilNavn,"\", "")
rFilNavn = Replace(rFilNavn,"/", "")
rFilNavn = Replace(rFilNavn,"-", "")
rFilNavn = Replace(rFilNavn," ", "")
strNytFilnavn = rFilNavn & "_" & strFilnavn
file1.saveas = "c:/stien/til/din/mappe/" & strNytFilnavn
Avatar billede thomas-k Nybegynder
07. juli 2007 - 17:15 #2
ahhh, rigtig smart med løsning 2. Den vil jeg anvende. Men løsning 1 ... er det slet ikke muligt uden java, eller er aspsmartupload så svær at danse med ?
Avatar billede eagleeye Praktikant
08. juli 2007 - 11:52 #3
File1 bliver en streng når du skriver sådan her, og ikke et file objekt:

File1 = objUpload.Files.Item("File1").FileName


Så prøve at rette din if sætning så den tjekke om strengen File1 er tom:

If len("" & trim(File1)) > 0 Then
Avatar billede thomas-k Nybegynder
08. juli 2007 - 13:14 #4
Super eagleeye. Works perfect!!!
Avatar billede thomas-k Nybegynder
08. juli 2007 - 13:15 #5
Dejlig simpelt i øvrigt.
Avatar billede eagleeye Praktikant
08. juli 2007 - 14:32 #6
Skal jeg så lave et svar? ;-)
Avatar billede thomas-k Nybegynder
08. juli 2007 - 22:46 #7
Jo, det må du meget gerne. Men jeg har oplevet nogle problemer nu, da jeg ikke fik testet rigtig tidligere. Det virker fint med at den ikke fjerner filnavn fra databasen, men jeg kan ikke uploade oveni et eksisterende filnavn. Dvs. hvis der findes et filnavn i forvejen, kan jeg ikke lave dette om. Kan du hjælpe mig med at rette det. Det er jo sandsynligvis nok fordi den tjekker om database feltet er tomt, og ikke selve formen fra den foregående side. Har prøvet nogle forskellige variationer uden held. Her er min kode:

If len("" & trim(File1)) > 0 Then
strSQL = "Update tabel set File1='" & Replace(objUpload.Files.Item("File1").FileName, "'", "''") & "' where ID= " &

objUpload.Form("ID")
Conn.Execute(strSQL)
end if
Avatar billede thomas-k Nybegynder
09. juli 2007 - 08:45 #8
Nå, jeg fandt ud af det til sidst:

If len("" & trim(Replace(objUpload.Files.Item("File2").FileName, "'", "''"))) > 0 Then
strSQL = "Update tabel set File2='" & Replace(objUpload.Files.Item("File2").FileName, "'", "''") & "' where ID= " &

objUpload.Form("ID")
Conn.Execute(strSQL)
end if

- takker mange gange for hjælpen eagleeye.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester