Avatar billede donkazz Nybegynder
20. januar 2006 - 10:48 Der er 10 kommentarer og
1 løsning

Tjek om fil er angivet inden upload vha. upload.form

Jeg er ved at lave et lille køb-salg forum, hvor man skal kunne skrive et indlæg om den bil man vil sælge/købe/bytte med. Man kan så vælge at "Gennemse" efter et billede, som så bliver uploadet og associeret med indlægget.

Mit problem er, at hvis man IKKE vælger en fil, så crasher scriptet, da det forsøger at uploade noget der ikke eksisterer.
Hvordan faen kan jeg tjekke for om en fil er angivet INDEN upload processen? Mit script ser nogenlunde sådan her ud:


If Request.QueryString("mode") = "save" Then

brugerMappe = Server.MapPath("/data/forumimages/")
Set Upload = Server.CreateObject("Persits.Upload.1")
Upload.OverwriteFiles = False
Upload.Save brugerMappe
Set File = Upload.Files("ATTACHMENT")
Filnavn = File.Filename


    Set Conn = Server.CreateObject("ADODB.Connection")   
    Set RS = Server.CreateObject("ADODB.RecordSet")
    Conn.Open Connect()
    RS.Open "SELECT * From ThePost", Conn, 1, 3
    RS.AddNew
    RS("Dato") = Now()
    RS("Navn") = Upload.Form("navn")
    RS("Email") = Upload.Form("email")
    RS("TlfNr") = Upload.Form("tlfnr")
    RS("Bemaerkning") = Replace(Upload.Form("bemaerkning"), VbCrLf, "<br>")
    RS("Indlaeg") = Replace(Upload.Form("indlaeg"), VbCrLf, "<br>")
    If Upload.Form("buy") <> "" Then
        RS("Buy") = True
    Else
        RS("Buy") = False
    End if
    RS("picture") = "/billeder/" & Filnavn

    If Upload.Form("sell") <> "" Then
        RS("Sell") = True
    Else
        RS("Sell") = False
    End if

    If Upload.Form("Xchg") <> "" Then
        RS("Xchg") = True
    Else
        RS("Xchg") = False
    End if
   
    RS("UserIP") = request.servervariables("REMOTE_ADDR")
    RS.Update
    RS.Close
    Conn.Close
    Set RS = Nothing
    Set Conn = Nothing
Avatar billede nielle Nybegynder
20. januar 2006 - 10:54 #1
Dit FILE-inputfelt:

<input type="file" name="billede">

- i formen har jo et navn.

Så er det bare at tjekke om dette har fået en værdi:

If Request.Form("billede") <> "" Then
' Upload kode her
Else
' Intet at uploade...
End If
Avatar billede donkazz Nybegynder
20. januar 2006 - 10:59 #2
Ja den hedder "ATTACHMENT" i mit input felt, men hvis jeg bruger Request, så gør den åbenbart alle andre Upload.Form ikke gyldige. Jeg har før været lidt i samme problem, da det ikke er muligt at smide filnavnet ind i databasen, før man har uploadet filen. Jeg ved ikke hvorfor... Men det gør det jo så lidt problematisk, for hvis man ikke kan requeste filnavnet, så kan man vel heller ikke tjekke om den overhovedet indeholder noget?
Avatar billede ldanielsen Nybegynder
20. januar 2006 - 11:05 #3
Prøv at checkke om Len (Upload.Files) > 0
Avatar billede nielle Nybegynder
20. januar 2006 - 11:07 #4
Måske:

If "" & Upload.Files("pdfFile").FileName <> "" Then
Avatar billede nielle Nybegynder
20. januar 2006 - 11:07 #5
If "" & Upload.Files("ATTACHMENT").FileName <> "" Then
Avatar billede fennec Nybegynder
20. januar 2006 - 11:09 #6
Count = Upload.Save brugerMappe
if count > 0 then
..
..
end if
Avatar billede fennec Nybegynder
20. januar 2006 - 11:11 #7
... Save komandoen returnere selv hvor mange filer der er uploadet, så det er bare at tjekke den værdi :o)
http://www.aspupload.com/manual_simple.html
Avatar billede fennec Nybegynder
20. januar 2006 - 11:12 #8
Avatar billede donkazz Nybegynder
20. januar 2006 - 11:45 #9
Perfekt fennec... Works like a charm! :-D Smid et svar, så' der point...
Avatar billede fennec Nybegynder
20. januar 2006 - 12:11 #10
.o) <-- One Eyed Jack
Avatar billede donkazz Nybegynder
20. januar 2006 - 13:54 #11
Tak for hjælpen :-)

God weekend!
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