Avatar billede loukas Mester
11. juni 2002 - 01:21 Der er 12 kommentarer og
1 løsning

ASP-Upload

Hej!
Jeg har en <FORM> her fra skal gemmes de indtastede oplysninger.(det virker fint).
Nu skal der så uploades en billed-fil fra samme <FORM>.
Det er her problemet kommer.
Jeg kan godt få det til at virke hver for sig.
Alså uploade en fil, uden de indtastede oplysninger.


<FORM>:

<<form action="opretnyvare1.asp" method="post">       
        <TABLE WIDTH="99%" BORDER=1 CELLSPACING=1 CELLPADDING=1 BGCOLOR=white>
    <TR>
        <TD></TD>
        <TD></TD>
    </TR>
    <TR>
        <TD><font face="verdana" size="2">Varenavn:</font></TD>
        <TD><input type="text" name="varenavn"></TD>
    </TR>
    <TR>
        <TD><font face="verdana" size="2">Varebeskrivelse:</font></TD>
        <TD><TEXTAREA name="varebeskrivelse" rows=4 cols=15></TEXTAREA></TD>
    </TR>
    <TR>
        <TD><font face="verdana" size="2">Farver:</font></TD>
        <TD><input type="text" size="7" name="farve1">&nbsp;<input type="text" size="7" name="farve2">&nbsp;<input type="text" size="7" name="farve3">&nbsp;<input type="text" size="7" name="farve4"></TD>
    </TR>
    <TR>
        <TD><font face="verdana" size="2">Størrelser:</font></TD>
        <TD><input type="text" size="7" name="size1">&nbsp;<input type="text" size="7" name="size2">&nbsp;<input type="text" size="7" name="size3">&nbsp;<input type="text" size="7" name="size4"></TD>
    </TR>
    <TR>
        <TD><font face="verdana" size="2">Pris:</font></TD>
        <TD><input type="text" name="pris" size="5"></TD>
    </TR>
    <TR>
        <TD><font face="verdana" size="2">Billede:</font></TD>
        <TD><INPUT TYPE="file" name="file1" enctype="multipart/form-data"></TD>
    </TR>
    <TR>
        <TD><font face="verdana" size="2">Kategori:</font></TD>
        <TD><select name="kategori">
<%       
            If objRS.EOF Then
        Response.Write "<font color=red><b>Ingen Varer fundet i denne Kategori !!</b></font>"
            Else
                Response.Write "<UL>"
       
                Do while not objRS.EOF
                Response.Write "<option value=" & objRS("Kategori")& ">" & objRS("Kategori") & "</option>"
                objRS.Movenext
                Loop
               
        End if
objRS.Close
set objRS = Nothing

%>
</select>
        </TD>
    </TR>
    <TR>
        <TD>&nbsp;</TD>
        <TD><input type="submit" value="Opret Varen"></TD>
    </TR>
</TABLE>
</form>





Opretnyvare1.asp :

strSQL = "INSERT INTO varer ( varenavn, varebeskrivelse, color1, color2, color3, color4, size1, size2, size3, varepris, Kategori ) "   
strSQL = strSQL & " VALUES('" & strVarenavn & "','" & strVarebeskrivelse & "','" & strFarve1 & "','" & strFarve2 & "',"
strSQL = strSQL & "'" & strFarve3 & "','" & strFarve4 & "','" & strSize1 & "','" & strSize2 & "','" & strSize3 & "','" & intPris & "','" & strKategori &  "')"

objconn.Execute strSQL


objRS.Close
Set objRS = Nothing
objConn.Close
set objConn = Nothing


Set Upload = Server.CreateObject("Persits.Upload.1")
Count = Upload.Save("d:\home\istoriadk\www\lachica\webshop\varer_pic\")
 






Avatar billede tmceu Praktikant
11. juni 2002 - 01:24 #1
Den samlede form skal have enctype="multipart/form-data" og så skal du huske at Request.Form skal erstattes af Upload.Form. Har ikke nærlæst din kode, men kan forestille mig at dette måske er nok?
Avatar billede lp Nybegynder
11. juni 2002 - 01:24 #2
2 ting:

1. Du har 2 stk << i din form....
2. Du mangler følgende i dit form tag for at kunne uploade en fil:
ENCTYPE="multipart/form-data"
Altså:

<<form action="opretnyvare1.asp" method="post">

bliver til

<form action="opretnyvare1.asp" method="post" ENCTYPE="multipart/form-data">

Se lige om det ikke virker :)
Avatar billede loukas Mester
11. juni 2002 - 01:30 #3
Hvis jeg giver FORMEN en 'enctype="multipart/form-data'
kommer den med en fejl i

Field 'varer.varenavn' cannot be a zero-length string.

altså får den ikke felterne med ????
Avatar billede lp Nybegynder
11. juni 2002 - 01:33 #4
du kan heller ikke referere til den med strVarenavn - det skal være Request.Form("varenavn") and so on for alle felterne... medmindre du allerede gør det og ikke viser hele koden fra opretnyvare1.asp...
Avatar billede tmceu Praktikant
11. juni 2002 - 01:34 #5
Hvordan initialiserer du dine variabler som du anvender til din insert ?

Hvis det er noget á la

strVarenavn = Request.Form("VareNavn")

skal det ændres til

strVarenavn = Upload.Form("VareNavn")
Avatar billede loukas Mester
11. juni 2002 - 01:34 #6
jo det gør jeg da, det var bare for ikke at fylde hele siden :-)
Avatar billede loukas Mester
11. juni 2002 - 01:36 #7
Jeg gør sådan:
strFarve1 = Request.Form("farve1")
strFarve2 = Request.Form("farve2")
strFarve3 = Request.Form("farve3")
strFarve4 = Request.Form("farve4")

Og det skal ændres således: ??


strFarve1 = Upload.Form("farve1")
strFarve2 = Upload.Form("farve2")
strFarve3 = Upload.Form("farve3")
strFarve4 = Upload.Form("farve4")
Avatar billede loukas Mester
11. juni 2002 - 01:42 #8
OK det virker ikke ??
Jeg får fejlen:
Object required: 'Upload'

Du får lige hele opretnyvare1.asp


<%@ Language=VBScript%>

<%
        strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
    "Data Source=" & Server.Mappath("../webshop/db/webshop.mdb") & ";"

Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open strConnection


Set objRS = Server.CreateObject("ADODB.Recordset")
Set objRS.ActiveConnection = objconn




strVarenavn = Upload.Form("varenavn")
strVarenavn = Replace(strVarenavn,"'","''")

strVarebeskrivelse = Upload.Form("varebeskrivelse")
strVarebeskrivelse = Replace(strVarebeskrivelse,"'","''")


strFarve1 = Upload.Form("farve1")
strFarve2 = Upload.Form("farve2")
strFarve3 = Upload.Form("farve3")
strFarve4 = Upload.Form("farve4")

strSize1 = Upload.Form("size1")
strSize2 = Upload.Form("size2")
strSize3 = Upload.Form("size3")
strSize4 = Upload.Form("size4")

intPris = Upload.Form("pris")

strKategori = Upload.Form("kategori")






strSQL = "INSERT INTO varer ( varenavn, varebeskrivelse, color1, color2, color3, color4, size1, size2, size3) "   
strSQL = strSQL & " VALUES('" & strVarenavn & "','" & strVarebeskrivelse & "','" & strFarve1 & "','" & strFarve2 & "',"
strSQL = strSQL & "'" & strFarve3 & "','" & strFarve4 & "','" & strSize1 & "','" & strSize2 & "','" & strSize3 & "')"

objconn.Execute strSQL



Set objRS = Nothing
objConn.Close
set objConn = Nothing


Set Upload = Server.CreateObject("Persits.Upload.1")
Count = Upload.Save("d:\home\istoriadk\www\lachica\webshop\varer_pic\")
 
%>


<HTML>
<HEAD>
</HEAD>
<BODY>

Varen er oprettet !!<br>




</BODY>
</HTML>
Avatar billede tmceu Praktikant
11. juni 2002 - 01:42 #9
Jeps :-)
Avatar billede tmceu Praktikant
11. juni 2002 - 01:43 #10
Du skal have flyttet din upload helt op i toppen af koden :-)
Avatar billede loukas Mester
11. juni 2002 - 01:46 #11
OK, prøver lige
Avatar billede loukas Mester
11. juni 2002 - 01:50 #12
Yes, selvfølgelig den skal jo lave objectet først ;-)

Nu virker det.
Tak for hjælpen det havde nok taget mig et par dage selv :-)
Avatar billede tmceu Praktikant
11. juni 2002 - 02:01 #13
Det var så lidt :-)
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