Avatar billede excession Nybegynder
23. september 2002 - 23:11 Der er 3 kommentarer og
1 løsning

slette hvis det ikke virker

Hejsa

jeg skal hente nogle værdier fra en formular og bruge værdierne til at uploade filer og skrive værdierne til DB.

MEN... jeg kan ikke finde ud af hvordan jeg skal få slettet filer og mapper hvis det ikke lykkedes at skrive til DB.

Jeg uploader nemlig op til 8 jpg filer og en beskrivelse til hver fil.  Hvis der ikke er nogen beskrivelse til en fil, skal den ikke skrive til DB om netop den fil, og så er det, jeg gerne vil have at filen slettes igen

det er en smule tricky synes jeg og derfor har jeg sat 200 point af.

her er koden jeg bruger:

Set Upload = Server.CreateObject("Persits.Upload")

' Limit file size to 50000 bytes, throw an exception if file is larger
Upload.SetMaxSize 50000, True

' Intercept all exceptions to display user-friendly error
On Error Resume Next

    ' Capture files
    Upload.Save


subdir = Upload.Form("ID")
filepath = "E:\Inetpub\wwwroot\Upload_test\hd\" & subdir


Upload.CreateDirectory filepath, False


descrNo = 2
For Each File in Upload.Files
    ' Obtain file object

  If File.ImageType = "UNKNOWN" Then
      Response.Write "This is not an image."
      Upload.RemoveDirectory filepath
      Response.End
  End If

    File.SaveAs filepath & "\" & File.FileName

    descr = Replace(Upload.Form(descrNo), "'", "''")

    If Not File Is Nothing Then

        ' Build ODBC connection string
        Connect = "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("upload.mdb")

            uploaddate = FormatDateTime(Now, 2)
            uploadtid = FormatDateTime(Now, 3)

                ' Build SQL INSERT statement
                SQL = "INSERT INTO billeder(filename, filepath, filesize, width, height, descr, filetype, uploaddate, uploadtid) VALUES("
                SQL = SQL & "'" & File.Filename & "', "
                SQL = SQL & "'" & File.Path & "', "
                SQL = SQL & "'" & File.Size & "', "
                SQL = SQL & "'" & File.ImageWidth & "', "
                SQL = SQL & "'" & File.ImageHeight & "', "
                SQL = SQL & "'" & descr & "', "
                SQL = SQL & "'" & File.ImageType & "', "
                SQL = SQL & "#" & uploaddate & "#, "
                SQL = SQL & "#" & uploadtid & "#"
                SQL = SQL & ");"

            ' Save to database
            File.ToDatabase Connect, SQL

            Response.Write "File(s) saved."

    Else

            ' 8 is the number of "File too large" exception
            If Err.Number = 8 Then
                  Response.Write "Your file is too large. Please try again."
            Else
                  If Err <> 0 Then
                      Response.Write "An error occurred: " & Err.Description
                  Else
                      Response.Write "Success!"
                  End If
            End If

    End If
descrNo = descrNo + 1
Next
Avatar billede excession Nybegynder
23. september 2002 - 23:12 #1
hvis der er nogen der kender en bedre måde at gøre tingene på, må de meget gerne prøve at forklare..
Avatar billede excession Nybegynder
23. september 2002 - 23:32 #2
det må være noget med at kunne checke om det er lykkedes at skrive til DB og hvis det ikke er lykkedes så skal den slette filen igen eller ikke gemme filen..
Avatar billede excession Nybegynder
23. september 2002 - 23:44 #3
nå jeg klarede det selv..:

            IF descr = "" THEN
            Upload.DeleteFile File.Path
            END IF

            ' Save to database
            File.ToDatabase Connect, SQL
Avatar billede excession Nybegynder
23. september 2002 - 23:44 #4
lukker
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