Avatar billede pretsmann Nybegynder
17. januar 2005 - 00:28 Der er 42 kommentarer og
1 løsning

SmartUpload filnavn

Hej

Jeg har på nuværende tidspkt. et upload script hvor filer uploades til server og gemmes som brugernavn_1 brugernavn_2 osv.

Da man nu skal kunne oprette flere annoncer på den samme bruger har jeg brug for at filen istedet gemmes med id fra tabellen annoncer (ID_1 ID_2)

Men kan ikke rigtig få det tilrettet så det virker, håber der er en der gider hjælpe, nuværende kode ser således ud:

<% if mode = "billedupload" then
           
           
  On Error Resume Next
             
'  Variables
'  *********
  Dim mySmartUpload
  Dim file
  Dim oConn
  Dim intCount
  intCount=0
  counter = 1
  Session.LCID = 1030

'  Object creation
'  ***************
  Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")
  mySmartUpload.MaxFileSize = 50000

'  Upload
'  ******
  mySmartUpload.Upload

'  Connect to the DB
'  *****************
  Set oConn = Server.CreateObject("ADODB.Connection")
  curDir = Server.MapPath("../database/kartotek.mdb")
  oConn.Open "DBQ="& curDir &";Driver={Microsoft Access Driver (*.mdb)};"

'  Open a recordset
'  ****************

'  Select each file
'  ****************
  For each file In mySmartUpload.Files
  '  Only if the file exist
  '  **********************
      If not file.IsMissing Then

      '  Add the current file in a DB field
      '  **********************************
file.SaveAs "d:\web\localuser\pretsmann.dk\public_html\images\annoncer\" & Session("brugernavn") & "_" & counter & "." & file.FileExt
filnavn = "images\annoncer\" & Session("brugernavn") & "_" & counter & "." & file.FileExt

felt = CStr("Img" & counter)
SQL = "Update annoncer Set "&felt&" = '" & filnavn & "' Where brugernavn = '" & Session("brugernavn") & "' "

      oConn.Execute (SQL)
       
        intCount = intCount + 1
      End If
  counter = counter + 1
  Next

'  Display the number of files uploaded
'  ************************************
    If Err Then
      stripstate = ("Filen var for stor: Den maksimale filstørrelse er 50 kb.<br><br>" & Err.description)
  Else

      stripstate = (intCount & " file(s) uploaded.<BR>")
  End If


'  Destruction
'  ***********
  oConn.Close
  Set oConn = Nothing
                 
                        %>
Avatar billede netro Nybegynder
17. januar 2005 - 06:36 #1
Du har altså en serie (skjulte?) felter med navnene "Img1", "Img2" osv. i din formular, der tilsvarer kolonnenavnene i din tabel. Men hvad er det, der ikke virker?

Det er i øvrigt et lidt "klodset" database design, hvis jeg må have lov at sige det. Jeg vil foreslå, at du i stedet har følgende tabeller:

1) En brugertabel - med et ID-nummer for hver bruger.
2) En artikeltabel - med et ID-nummer for hver artikel, der refererer til brugertabellen via brugerid'et, så du kan se, hvem der har oprettet de enkelte artikler.
3) En fototabel - med et ID-nummer for hvert foto, der refererer til artikeltabellen via artikelid'et, så du kan se, hvilken artikel det enkelte foto tilhører.

På den måde vil man kunne oprette et ubegrænset antal fotos, og dine filnavne kan så navngives efter deres fotoid i tabellen. Således vil du også kun have brugernavne etc. stående ét sted og dermed spare plads og undgå inkonsistente data (værdikonflikt).
Avatar billede ellebaek Nybegynder
17. januar 2005 - 20:51 #2
hvis jeg forstår dig rigtigt, så skal en bruger kunne oprette flere annoncer..
disse annoncer kan have tilknyttet 2 billeder..

disse billeder oploader brugeren på siden..

Du bliver så nødt til at chekke hvilken annonce brugeren skal uploade en fil til, og hvilket billede der skal erstattes af det nye..

Skriv hvis jeg har forstået det forkert..
Avatar billede pretsmann Nybegynder
17. januar 2005 - 21:37 #3
Ja en bruger skal kunne oprette flere annoncer og tilknytte 6 billeder til hver annonce.

Så jeg tænkte om man ikke bare kunne bruge annonceid'en + et tal som filnavn og så putte stien til billedet i annoncetabellen? (ligesom du gjorde med brugernavnet i det tidl. du lavede til mig)?
Avatar billede ellebaek Nybegynder
18. januar 2005 - 17:19 #4
jo... det kan man sagtens...
Men har du ID'et på nyheden når du oploader billederne ?
Avatar billede pretsmann Nybegynder
18. januar 2005 - 18:49 #5
Ja annoncen oprettes umiddelbart før upload siden kommer, så jeg ville gerne at annonceID'en benyttes som filnavn.

Regnede med at den sidste kode du lavede med brugernavnet som filnavn kunne rettes så annonceID'en bruges istedet?? Men jeg ved som sagt ikke lige hvordan det gøres...
Avatar billede ellebaek Nybegynder
19. januar 2005 - 11:52 #6
hvordan henter du annonce id'et ud når du opretter annoncen..?

og så vis lige formen også..
Avatar billede pretsmann Nybegynder
19. januar 2005 - 15:12 #7
annonce id indsættes med autonummerering i access db.

                <% if mode = "ny_annonce" then
                       
                        'Tjecker om brugeren er logget ind
                        if session("brugernavn") = "" then
                            Response.Redirect("login_bruger.asp?mode=login")
                        end if
                       
                        'Hvis brugeren har submittet login formen
                        if Request.ServerVariables("REQUEST_METHOD") = "POST" then
                               
                        'Tjecker om felterner er udfydlt
                        if Request.Form("Postnr") <> "" AND Request.Form("By") <> "" then
                       
                       
                        'Henter profil
                        Set rs = Server.CreateObject("ADODB.Recordset")
                        sql = "select * from annoncer where brugernavn = '" & Session("brugernavn") & "'"
                        rs.open sql, conn, 1, 3
                       
                            'Tilføjer felterne
                            rs.AddNew
                            rs("Brugernavn") = Server.HTMLEncode(Request("Brugernavn"))
                            rs("Region") = Server.HTMLEncode(Request("Region"))
                            rs("Postnr") = Server.HTMLEncode(Request("Postnr"))
                            rs("By") = Server.HTMLEncode(Request("By"))
                            rs("Beskrivelse") = Server.HTMLEncode(Request("Beskrivelse"))
                            rs("Telefon") = Server.HTMLEncode(Request("Telefon"))
                            rs.update
                           
                            Response.Redirect("login_bruger.asp?mode=billedarkiv")       
                           
                            else   
                                stripstate = "Du har ikke udfyldt alle felterne"
                            end if
                       
                   
                        end if %>

     
          <div align="center">
            <center>
          <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="560">
            <tr>
              <td width="100%" height="23"><b><font size="2">Opret ny annonce</font></b></td>
            </tr>
            <tr>
              <td width="100%" height="20"><font color="#FF0000" face="Verdana" size="2"><% = stripstate %></font></td>
            </tr>
          </table>
            </center>
          </div> 


          <div align="center">
            <center>
               
              <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="560" height="571">
              <form method="post" action="login_bruger.asp?mode=ny_annonce">
                <tr>
                  <td width="98" height="25">Region:
                  <input type="hidden" name="Brugernavn" value="<%=Session("brugernavn")%>" style="font-family: Verdana; font-size: 8 pt; width:210" size="20"></td>
                  <td width="462" height="25">
                  <select name="Region" style="width:200; font-family:Verdana; font-size:8 pt"><option value="Vælg venligst region">Øst</option>
                  <option value="Københavns amt">&nbsp;&nbsp;• Københavns amt</option>
                  <option value="Bornholms amt">&nbsp;&nbsp;• Bornholms amt</option>
                  <option value="Frederiksborg amt">&nbsp;&nbsp;• Frederiksborg amt</option>
                  <option value="Roskilde amt">&nbsp;&nbsp;• Roskilde amt</option>
                  <option value="Storstrøms amt">&nbsp;&nbsp;• Storstrøms amt</option>
                  <option value="Vestsjællands amt">&nbsp;&nbsp;• Vestsjællands amt</option>
                  <option value="Vælg venligst region">Vest</option>
                  <option value="&Aring;rhus amt">&nbsp;&nbsp;• &Aring;rhus amt</option>
                  <option value="Viborg amt">&nbsp;&nbsp;• Viborg amt</option>
                  <option value="Fyns amt">&nbsp;&nbsp;• Fyns amt</option>
                  <option value="Nordjyllands amt">&nbsp;&nbsp;• Nordjyllands amt</option>
                  <option value="Ribe amt">&nbsp;&nbsp;• Ribe amt</option>
                  <option value="Ringkøbing amt">&nbsp;&nbsp;• Ringkøbing amt</option>
                  <option value="Sønderjyllands amt">&nbsp;&nbsp;• Sønderjyllands amt</option>
                  <option value="Vejle amt">&nbsp;&nbsp;• Vejle amt</option>
                  </select></td>
                </tr>
                <tr>
                  <td width="98" height="25">Postnr.:</td>
                  <td width="462" height="25">
                  <input type="text" name="Postnr" style="font-family: Verdana; font-size: 8 pt; width:96" size="20"></td>
                </tr>
                <tr>
                  <td width="98" height="25">By:</td>
                  <td width="462" height="25">
                  <input type="text" name="By" style="font-family: Verdana; font-size: 8 pt; width:200" size="20"></td>
                </tr>

                <tr>
                  <td width="98" valign="top" height="121">Beskrivelse:<br>
                  <font size="1">Evt. supplerende<br>
                  tekst</font></td>
                  <td width="462" height="121">
                  <textarea cols="30" rows="9" name="Beskrivelse" style="font-family: Verdana; font-size: 8 pt; width:200"></textarea></td>
                </tr>
                <tr>
                  <td width="98" height="25">Telefon:</td>
                  <td width="462" height="25">
                  <input type="text" name="Telefon" style="font-family: Verdana; font-size: 8 pt; width:96" size="20" maxlength="8"></td>
                </tr>
                <tr>
                  <td width="98" height="35" valign="top">&nbsp;</td>
                  <td width="462" height="35" valign="top">
                  <</td>
                </tr>
                <tr>
                  <td width="98" height="40"></td>
                  <td width="462" height="40"><input type="submit" value="Opret annonce" name="B1" style="font-family: Verdana; font-size: 8 pt; height: 22"></td>
                </tr>
              </table>
            </form>
            </center>
          </div>

                <% end if %>
Avatar billede ellebaek Nybegynder
20. januar 2005 - 22:04 #8
hmm...

Først skal du lige lave toppen om til dette:

              <% if mode = "ny_annonce" then
                       
                        'Tjecker om brugeren er logget ind
                        if session("brugernavn") = "" then
                            Response.Redirect("login_bruger.asp?mode=login")
                        end if
                       
                        'Hvis brugeren har submittet login formen
                        if Request.ServerVariables("REQUEST_METHOD") = "POST" then
                               
                        'Tjecker om felterner er udfydlt
                        if Request.Form("Postnr") <> "" AND Request.Form("By") <> "" then
                       
                       
                        'Henter profil
                        Set rs = Server.CreateObject("ADODB.connection")
                        rs.open conn

                        sql = "INSERT INTO annoncer(brugernavn, Region, Postnr, [by], Beskrivelse, Telefon) VALUES = '" & Server.HTMLEncode(Request("Brugernavn")) & "', '"& Server.HTMLEncode(Request("Region")) & "', " & Server.HTMLEncode(Request("Postnr")) & ", '" & Server.HTMLEncode(Request("By")) & "', '"&Server.HTMLEncode(Request("Beskrivelse"))& "', "& Server.HTMLEncode(Request("Telefon")) & ")"
rs.execute(sql)

sql = "SELECT @@IDENTITY as newId"
set rs = rs.execute(sql)
newId = rs("newId")                         
                            Response.Redirect("login_bruger.asp?mode=billedarkiv&id=" &newId)       
                           
                            else   
                                stripstate = "Du har ikke udfyldt alle felterne"
                            end if
                       
                   
                        end if %>

når det er klar, så skal du rette i den form du benytter før du uploader..
der skal du rette til: så formen sender id'variablen videre også:
<form action="dinside.asp?id=<%=request.querystring("id")%>">

derefter skal du rette i din upload del..
<% if mode = "billedupload" then
           
           
  On Error Resume Next
             
'  Variables
'  *********
  Dim mySmartUpload
  Dim file
  Dim oConn
  Dim intCount
  intCount=0
  counter = 1
  Session.LCID = 1030

'  Object creation
'  ***************
  Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")
  mySmartUpload.MaxFileSize = 50000

'  Upload
'  ******
  mySmartUpload.Upload

'  Connect to the DB
'  *****************
  Set oConn = Server.CreateObject("ADODB.Connection")
  curDir = Server.MapPath("../database/kartotek.mdb")
  oConn.Open "DBQ="& curDir &";Driver={Microsoft Access Driver (*.mdb)};"

'  Open a recordset
'  ****************

'  Select each file
'  ****************
  For each file In mySmartUpload.Files
  '  Only if the file exist
  '  **********************
      If not file.IsMissing Then

      '  Add the current file in a DB field
      '  **********************************
file.SaveAs "d:\web\localuser\pretsmann.dk\public_html\images\annoncer\" & request.querystring("id") & "_" & counter & "." & file.FileExt
filnavn = "images\annoncer\" & request.querystring("id") & "_" & counter & "." & file.FileExt

felt = CStr("Img" & counter)
SQL = "Update annoncer Set "&felt&" = '" & filnavn & "' Where brugernavn = '" & Session("brugernavn") & "' "

      oConn.Execute (SQL)
       
        intCount = intCount + 1
      End If
  counter = counter + 1
  Next

'  Display the number of files uploaded
'  ************************************
    If Err Then
      stripstate = ("Filen var for stor: Den maksimale filstørrelse er 50 kb.<br><br>" & Err.description)
  Else

      stripstate = (intCount & " file(s) uploaded.<BR>")
  End If


'  Destruction
'  ***********
  oConn.Close
  Set oConn = Nothing
                 
                        %>

Sådan vil jeg tro det kan virke...
Avatar billede pretsmann Nybegynder
21. januar 2005 - 00:21 #9
Efter at have rettet dette får jeg fejl når jeg forsøger at oprette en annonce:
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Syntax error in INSERT INTO statement.

/login_bruger.asp, line 657

line 657 = rs.execute(sql)
Avatar billede netro Nybegynder
21. januar 2005 - 00:30 #10
Erstat VALUES = '" med VALUES('"

Det er ikke ubetinget smart at bruge Server.Htmlencode på data, der indsættes i basen.
Avatar billede pretsmann Nybegynder
21. januar 2005 - 00:39 #11
hmm så får jeg:

Microsoft OLE DB Provider for ODBC Drivers error '80040e10'

[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.

/login_udlejer.asp, line 657
Avatar billede netro Nybegynder
21. januar 2005 - 00:42 #12
En af dine tal-værdier i dit statement mangler.

Prøv at lave en:
Response.Write sql
Avatar billede pretsmann Nybegynder
21. januar 2005 - 00:51 #13
øhh ja hvor??

der sker ikke så meget andet en fejlmeddelelsen
Avatar billede netro Nybegynder
21. januar 2005 - 01:00 #14
Lige inden rs.execute(sql)
Avatar billede netro Nybegynder
21. januar 2005 - 01:00 #15
- evt efterfulgt af en Response.End
Avatar billede ellebaek Nybegynder
21. januar 2005 - 01:04 #16
måske det er fordi tlf ikke er tal:

sql = "INSERT INTO annoncer(brugernavn, Region, Postnr, [by], Beskrivelse, Telefon) VALUES ('" & Server.HTMLEncode(Request("Brugernavn")) & "', '"& Server.HTMLEncode(Request("Region")) & "', " & Request("Postnr") & ", '" & Server.HTMLEncode(Request("By")) & "', '"&Server.HTMLEncode(Request("Beskrivelse"))& "', '"& Server.HTMLEncode(Request("Telefon")) & "')"

prøv evt. sådan her:!
Avatar billede pretsmann Nybegynder
21. januar 2005 - 01:07 #17
ok det giver:

INSERT INTO annoncer(brugernavn, Region, Postnr, Postby, Beskrivelse, Telefon,) VALUES ('junk@pretsmann.dk', '10', 3243, 'Århus', '', '')
Microsoft OLE DB Provider for ODBC Drivers error '80040e10'

[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.

/login_udlejer.asp, line 658
Avatar billede ellebaek Nybegynder
21. januar 2005 - 01:11 #18
hvad type er telefon i databasen ?

sql = "INSERT INTO annoncer(brugernavn, Region, Postnr, [by], Beskrivelse, Telefon) VALUES ('" & Server.HTMLEncode(Request("Brugernavn")) & "', "& Request("Region") & ", " & Request("Postnr") & ", '" & Server.HTMLEncode(Request("By")) & "', '"&Server.HTMLEncode(Request("Beskrivelse"))& "', '"& Server.HTMLEncode(Request("Telefon")) & "')"

region er altid et tal ?

Så skal den være som ovenfor...
Avatar billede ellebaek Nybegynder
21. januar 2005 - 01:12 #19
men går kold nu...

Jeg vil mene du skal lege videre med det jeg foreslog tidligere, så skal det nok komme til at fungere..

Men skriver ikke foreløbigt, for smutter på skitur i morgen..

Men håber du får det fikset..!
Avatar billede pretsmann Nybegynder
21. januar 2005 - 01:16 #20
telefon er notat felt

ja region er altid tal
Avatar billede pretsmann Nybegynder
21. januar 2005 - 01:18 #21
hvorfor står by som [by]
Avatar billede netro Nybegynder
21. januar 2005 - 01:30 #22
Fordi det er et reserveret ord.
Avatar billede pretsmann Nybegynder
21. januar 2005 - 01:35 #23
nå ok... så kom det til at funge!

Nu kommer der så bare fejl når man kommer til upload billede:

Filen var for stor: Den maksimale filstørrelse er 50 kb.

006~ASP 0206~Cannot call BinaryRead~Cannot call BinaryRead after using Request.Form collection.
Avatar billede netro Nybegynder
21. januar 2005 - 01:40 #24
Du kan ikke hente et binært objekt (her et billede), efter du har brugt Request.Form(...)
- brug istedet mySmartUpload.Form(...)
Avatar billede pretsmann Nybegynder
21. januar 2005 - 01:46 #25
øhh?? hvor er det lige jeg har brugt Request.Form
Avatar billede netro Nybegynder
21. januar 2005 - 01:54 #26
Det har du ikke, men du glemmer vist at sende billedet binært.

<form action="dinside.asp?id=<%=request.querystring("id")%>" enctype="multipart/form-data">
Avatar billede pretsmann Nybegynder
21. januar 2005 - 16:10 #27
jamen det har jeg

<form action="login_bruger.asp?mode=billedupload&id=<%=request.querystring("id")%>" enctype="multipart/form-data">
Avatar billede netro Nybegynder
21. januar 2005 - 16:14 #28
Nå, jeg kan bare ikke se det noget sted i din kode.
Avatar billede pretsmann Nybegynder
21. januar 2005 - 17:47 #29
Kan du se hvad problemet er?

                <% if mode = "ny_annonce" then
                       
                        'Tjecker om brugeren er logget ind
                        if session("brugernavn") = "" then
                            Response.Redirect("login_bruger.asp?mode=login")
                        end if
                       
                        'Hvis brugeren har submittet login formen
                        if Request.ServerVariables("REQUEST_METHOD") = "POST" then
                               
                        'Tjecker om felterner er udfydlt
                        if Request.Form("Postnr") <> "" AND Request.Form("Postby") <> "" then
                       
                       
                        'Henter bruger profil
                        Set rs = Server.CreateObject("ADODB.connection")
                        rs.open conn

                        'Tilføjer felterne
                        sql = "INSERT INTO annoncer(brugernavn, Region, Postnr, [by], Beskrivelse, Telefon) VALUES ('" & Server.HTMLEncode(Request("Brugernavn")) & "', "& Request("Region") & ", " & Request("Postnr") & ", '" & Server.HTMLEncode(Request("By")) & "', '"&Server.HTMLEncode(Request("Beskrivelse"))& "', '"& Server.HTMLEncode(Request("Telefon")) & "')"
                        rs.execute(sql)

                        sql = "SELECT @@IDENTITY as newId"
                        set rs = rs.execute(sql)
                        newId = rs("newId")
                                               
                        Response.Redirect("login_bruger.asp?mode=billedarkiv&id=" &newId)
                       
                            else   
                                stripstate = "Du har ikke udfyldt alle felterne"
                            end if
                       
                   
                        end if %>


              Annonce oprettes fint...





                <% if mode = "billedarkiv" then
                       
                        'Tjecker om udlejer er logget ind
                        if session("brugernavn") = "" then
                            Response.Redirect("login_bruger.asp?mode=login")
                        end if
                       
                        Session.Timeout = 60
                       
                        'Henter billedarkiv
                        Set rs = Server.CreateObject("ADODB.Recordset")
                        sql = "select * from annoncer where brugernavn = '" & Session("brugernavn") & "'"
                        rs.open sql, conn, 1, 3
                           
                        %>



                    <FORM METHOD="POST" ACTION="login_bruger.asp?mode=billedupload&id=<%=request.querystring("id")%>" ENCTYPE="multipart/form-data">

                    <table cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="560">
                        <tr>
                            <td><b>Billede 1:</b></td>
                        </tr>
                        <tr>
                            <td><INPUT TYPE="FILE" NAME="FILE1" SIZE="50"></td>
                        </tr>
                        <tr>
                            <td height="10"></td>
                        </tr>
                        <tr>
                            <td><b>Billede 2:</b></td>
                        </tr>
                        <tr>
                            <td><INPUT TYPE="FILE" NAME="FILE2" SIZE="50"></td>
                        </tr>
                        <tr>
                            <td height="10"></td>
                        </tr>
                        <tr>
                            <td><b>Billede 3:</b></td>
                        </tr>
                        <tr>
                            <td><INPUT TYPE="FILE" NAME="FILE3" SIZE="50"></td>
                        </tr>
                        <tr>
                            <td height="10"></td>
                        </tr>
                        <tr>
                            <td><b>Billede 4:</b></td>
                        </tr>
                        <tr>
                            <td><INPUT TYPE="FILE" NAME="FILE4" SIZE="50"></td>
                        </tr>
                        <tr>
                            <td height="10"></td>
                        </tr>
                        <tr>
                            <td><b>Billede 5:</b></td>
                        </tr>
                        <tr>
                            <td><INPUT TYPE="FILE" NAME="FILE5" SIZE="50"></td>
                        </tr>
                        <tr>
                            <td height="10"></td>
                        </tr>
                        <tr>
                            <td><b>Billede 6:</b></td>
                        </tr>
                        <tr>
                            <td><INPUT TYPE="FILE" NAME="FILE6" SIZE="50"></td>
                        </tr>
                        <tr>
                            <td height="40" colspan="3"><INPUT TYPE="submit" VALUE="Send billede(r)"></td>
                        </tr>
                    </table>
                   
                    </form>




<% if mode = "billedupload" then
           
                        'Tjecker om udlejeren er logget ind
                        if session("brugernavn") = "" then
                            Response.Redirect("login_bruger.asp?mode=login")
                        end if
                       
                        Session.Timeout = 60
           
  On Error Resume Next
             
'  Variables
'  *********
  Dim mySmartUpload
  Dim file
  Dim oConn
  Dim intCount
  intCount=0
  counter = 1
  Session.LCID = 1030

'  Object creation
'  ***************
  Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")
  mySmartUpload.MaxFileSize = 50000

'  Upload
'  ******
  mySmartUpload.Upload

'  Connect to the DB
'  *****************
  Set oConn = Server.CreateObject("ADODB.Connection")
  curDir = Server.MapPath("../database/bruger.mdb")
  oConn.Open "DBQ="& curDir &";Driver={Microsoft Access Driver (*.mdb)};"

'  Open a recordset
'  ****************

'  Select each file
'  ****************
  For each file In mySmartUpload.Files
  '  Only if the file exist
  '  **********************
      If not file.IsMissing Then

      '  Add the current file in a DB field
      '  **********************************
file.SaveAs "d:\web\localuser\pretsmann.dk\public_html\images\" & request.querystring("id") & "_" & counter & "." & file.FileExt
filnavn = "http://www.pretsmann.dk/images/" & request.querystring("id") & "_" & counter & "." & file.FileExt

felt = CStr("Img" & counter)
SQL = "Update annoncer Set "&felt&" = '" & filnavn & "' Where brugernavn = '" & Session("brugernavn") & "' "

      oConn.Execute (SQL)
       
        intCount = intCount + 1
      End If
  counter = counter + 1
  Next

'  Display the number of files uploaded
'  ************************************
    If Err Then
      stripstate = ("Filen var for stor: Den maksimale filstørrelse er 50 kb.<br><br>" & Err.description)
  Else

      stripstate = (intCount & " file(s) uploaded.<BR>")
  End If


'  Destruction
'  ***********
  oConn.Close
  Set oConn = Nothing
                 
                        %>
Avatar billede ellebaek Nybegynder
30. januar 2005 - 19:54 #30
hvad er problemet ?
Avatar billede pretsmann Nybegynder
30. januar 2005 - 22:23 #31
Hej ellebaek, rart at se dig tilbage...

Jeg får denne fejl når jeg forsøger at uploade:

Filen var for stor: Den maksimale filstørrelse er 50 kb.

006~ASP 0206~Cannot call BinaryRead~Cannot call BinaryRead after using Request.Form collection.
Avatar billede ellebaek Nybegynder
31. januar 2005 - 14:28 #32
tror du bliver nødt til at dele det ud i 2 filer, altså så du har opret annonce i den ene fil, og upload fil i en anden fil...
Avatar billede pretsmann Nybegynder
31. januar 2005 - 21:20 #33
ja det har jeg prøvet men ændrer intet
Avatar billede ellebaek Nybegynder
04. februar 2005 - 20:06 #34
hmm...

mon det er request.querystringen der fejler..?

prøv lige at se om denne fejler..


                <% if mode = "ny_annonce" then
                     
                        'Tjecker om brugeren er logget ind
                        if session("brugernavn") = "" then
                            Response.Redirect("login_bruger.asp?mode=login")
                        end if
                     
                        'Hvis brugeren har submittet login formen
                        if Request.ServerVariables("REQUEST_METHOD") = "POST" then
                             
                        'Tjecker om felterner er udfydlt
                        if Request.Form("Postnr") <> "" AND Request.Form("Postby") <> "" then
                     
                     
                        'Henter bruger profil
                        Set rs = Server.CreateObject("ADODB.connection")
                        rs.open conn

                        'Tilføjer felterne
                        sql = "INSERT INTO annoncer(brugernavn, Region, Postnr, [by], Beskrivelse, Telefon) VALUES ('" & Server.HTMLEncode(Request("Brugernavn")) & "', "& Request("Region") & ", " & Request("Postnr") & ", '" & Server.HTMLEncode(Request("By")) & "', '"&Server.HTMLEncode(Request("Beskrivelse"))& "', '"& Server.HTMLEncode(Request("Telefon")) & "')"
                        rs.execute(sql)

                        sql = "SELECT @@IDENTITY as newId"
                        set rs = rs.execute(sql)
                        newId = rs("newId")
                                             
                        Response.Redirect("login_bruger.asp?mode=billedarkiv&id=" &newId)
                     
                            else 
                                stripstate = "Du har ikke udfyldt alle felterne"
                            end if
                     
                 
                        end if %>


              Annonce oprettes fint...





                <% if mode = "billedarkiv" then
                     
                        'Tjecker om udlejer er logget ind
                        if session("brugernavn") = "" then
                            Response.Redirect("login_bruger.asp?mode=login")
                        end if
                     
                        Session.Timeout = 60
                     
                        'Henter billedarkiv
                        Set rs = Server.CreateObject("ADODB.Recordset")
                        sql = "select * from annoncer where brugernavn = '" & Session("brugernavn") & "'"
                        rs.open sql, conn, 1, 3
                         
                        %>



                    <FORM METHOD="POST" ACTION="login_bruger.asp?mode=billedupload&id=<%=request.querystring("id")%>" ENCTYPE="multipart/form-data">

                    <table cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="560">
                        <tr>
                            <td><b>Billede 1:</b></td>
                        </tr>
                        <tr>
                            <td><INPUT TYPE="FILE" NAME="FILE1" SIZE="50"></td>
                        </tr>
                        <tr>
                            <td height="10"></td>
                        </tr>
                        <tr>
                            <td><b>Billede 2:</b></td>
                        </tr>
                        <tr>
                            <td><INPUT TYPE="FILE" NAME="FILE2" SIZE="50"></td>
                        </tr>
                        <tr>
                            <td height="10"></td>
                        </tr>
                        <tr>
                            <td><b>Billede 3:</b></td>
                        </tr>
                        <tr>
                            <td><INPUT TYPE="FILE" NAME="FILE3" SIZE="50"></td>
                        </tr>
                        <tr>
                            <td height="10"></td>
                        </tr>
                        <tr>
                            <td><b>Billede 4:</b></td>
                        </tr>
                        <tr>
                            <td><INPUT TYPE="FILE" NAME="FILE4" SIZE="50"></td>
                        </tr>
                        <tr>
                            <td height="10"></td>
                        </tr>
                        <tr>
                            <td><b>Billede 5:</b></td>
                        </tr>
                        <tr>
                            <td><INPUT TYPE="FILE" NAME="FILE5" SIZE="50"></td>
                        </tr>
                        <tr>
                            <td height="10"></td>
                        </tr>
                        <tr>
                            <td><b>Billede 6:</b></td>
                        </tr>
                        <tr>
                            <td><INPUT TYPE="FILE" NAME="FILE6" SIZE="50"></td>
                        </tr>
                        <tr>
                            <td height="40" colspan="3"><INPUT TYPE="submit" VALUE="Send billede(r)"></td>
                        </tr>
                    </table>
                 
                    </form>




<% if mode = "billedupload" then
         
                        'Tjecker om udlejeren er logget ind
                        if session("brugernavn") = "" then
                            Response.Redirect("login_bruger.asp?mode=login")
                        end if
                     
                        Session.Timeout = 60
         
  On Error Resume Next
           
'  Variables
'  *********
  Dim mySmartUpload
  Dim file
  Dim oConn
  Dim intCount
  intCount=0
  counter = 1
  Session.LCID = 1030

'  Object creation
'  ***************
  Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")
  mySmartUpload.MaxFileSize = 50000

'  Upload
'  ******
  mySmartUpload.Upload

'  Connect to the DB
'  *****************
  Set oConn = Server.CreateObject("ADODB.Connection")
  curDir = Server.MapPath("../database/bruger.mdb")
  oConn.Open "DBQ="& curDir &";Driver={Microsoft Access Driver (*.mdb)};"

'  Open a recordset
'  ****************

'  Select each file
'  ****************
  For each file In mySmartUpload.Files
  '  Only if the file exist
  '  **********************
      If not file.IsMissing Then

      '  Add the current file in a DB field
      '  **********************************
file.SaveAs "d:\web\localuser\pretsmann.dk\public_html\images\hestehandler_" & counter & "." & file.FileExt
filnavn = "http://www.pretsmann.dk/images/hestehandler_" & counter & "." & file.FileExt

felt = CStr("Img" & counter)
SQL = "Update annoncer Set "&felt&" = '" & filnavn & "' Where brugernavn = '" & Session("brugernavn") & "' "

      oConn.Execute (SQL)
     
        intCount = intCount + 1
      End If
  counter = counter + 1
  Next

'  Display the number of files uploaded
'  ************************************
    If Err Then
      stripstate = ("Filen var for stor: Den maksimale filstørrelse er 50 kb.<br><br>" & Err.description)
  Else

      stripstate = (intCount & " file(s) uploaded.<BR>")
  End If


'  Destruction
'  ***********
  oConn.Close
  Set oConn = Nothing
               
                        %>
Avatar billede pretsmann Nybegynder
04. februar 2005 - 20:23 #35
Haløjsa.... Ja det var det, nu er hestehandleren røget ind.
Avatar billede pretsmann Nybegynder
07. februar 2005 - 11:13 #36
Men kan du så hjælpe mig med at få det ordnet så det bliver annonceid'en istedet for hestehandleren ?
Avatar billede ellebaek Nybegynder
10. februar 2005 - 22:06 #37
hmm...

Mon ikke det her kan klare det..




                <% if mode = "ny_annonce" then
                     
                        'Tjecker om brugeren er logget ind
                        if session("brugernavn") = "" then
                            Response.Redirect("login_bruger.asp?mode=login")
                        end if
                     
                        'Hvis brugeren har submittet login formen
                        if Request.ServerVariables("REQUEST_METHOD") = "POST" then
                             
                        'Tjecker om felterner er udfydlt
                        if Request.Form("Postnr") <> "" AND Request.Form("Postby") <> "" then
                     
                     
                        'Henter bruger profil
                        Set rs = Server.CreateObject("ADODB.connection")
                        rs.open conn

                        'Tilføjer felterne
                        sql = "INSERT INTO annoncer(brugernavn, Region, Postnr, [by], Beskrivelse, Telefon) VALUES ('" & Server.HTMLEncode(Request("Brugernavn")) & "', "& Request("Region") & ", " & Request("Postnr") & ", '" & Server.HTMLEncode(Request("By")) & "', '"&Server.HTMLEncode(Request("Beskrivelse"))& "', '"& Server.HTMLEncode(Request("Telefon")) & "')"
                        rs.execute(sql)

                        sql = "SELECT @@IDENTITY as newId"
                        set rs = rs.execute(sql)
                        newId = rs("newId")
                                             
                        Response.Redirect("login_bruger.asp?mode=billedarkiv&id=" &newId)
                     
                            else 
                                stripstate = "Du har ikke udfyldt alle felterne"
                            end if
                     
                 
                        end if %>


              Annonce oprettes fint...





                <% if mode = "billedarkiv" then
                     
                        'Tjecker om udlejer er logget ind
                        if session("brugernavn") = "" then
                            Response.Redirect("login_bruger.asp?mode=login")
                        end if
                     
                        Session.Timeout = 60
                     
                        'Henter billedarkiv
                        Set rs = Server.CreateObject("ADODB.Recordset")
                        sql = "select * from annoncer where brugernavn = '" & Session("brugernavn") & "'"
                        rs.open sql, conn, 1, 3
                         
                        %>



                    <FORM METHOD="POST" ACTION="login_bruger.asp?mode=billedupload" ENCTYPE="multipart/form-data">
<input type="hidden" name="annonce_id" value="<%=request.querystring("id")%>">
                    <table cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="560">
                        <tr>
                            <td><b>Billede 1:</b></td>
                        </tr>
                        <tr>
                            <td><INPUT TYPE="FILE" NAME="FILE1" SIZE="50"></td>
                        </tr>
                        <tr>
                            <td height="10"></td>
                        </tr>
                        <tr>
                            <td><b>Billede 2:</b></td>
                        </tr>
                        <tr>
                            <td><INPUT TYPE="FILE" NAME="FILE2" SIZE="50"></td>
                        </tr>
                        <tr>
                            <td height="10"></td>
                        </tr>
                        <tr>
                            <td><b>Billede 3:</b></td>
                        </tr>
                        <tr>
                            <td><INPUT TYPE="FILE" NAME="FILE3" SIZE="50"></td>
                        </tr>
                        <tr>
                            <td height="10"></td>
                        </tr>
                        <tr>
                            <td><b>Billede 4:</b></td>
                        </tr>
                        <tr>
                            <td><INPUT TYPE="FILE" NAME="FILE4" SIZE="50"></td>
                        </tr>
                        <tr>
                            <td height="10"></td>
                        </tr>
                        <tr>
                            <td><b>Billede 5:</b></td>
                        </tr>
                        <tr>
                            <td><INPUT TYPE="FILE" NAME="FILE5" SIZE="50"></td>
                        </tr>
                        <tr>
                            <td height="10"></td>
                        </tr>
                        <tr>
                            <td><b>Billede 6:</b></td>
                        </tr>
                        <tr>
                            <td><INPUT TYPE="FILE" NAME="FILE6" SIZE="50"></td>
                        </tr>
                        <tr>
                            <td height="40" colspan="3"><INPUT TYPE="submit" VALUE="Send billede(r)"></td>
                        </tr>
                    </table>
                 
                    </form>




<% if mode = "billedupload" then
         
                        'Tjecker om udlejeren er logget ind
                        if session("brugernavn") = "" then
                            Response.Redirect("login_bruger.asp?mode=login")
                        end if
                     
                        Session.Timeout = 60
         
  On Error Resume Next
           
'  Variables
'  *********
  Dim mySmartUpload
  Dim file
  Dim oConn
  Dim intCount
  intCount=0
  counter = 1
  Session.LCID = 1030

'  Object creation
'  ***************
  Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")
  mySmartUpload.MaxFileSize = 50000

'  Upload
'  ******
  mySmartUpload.Upload

'  Connect to the DB
'  *****************
  Set oConn = Server.CreateObject("ADODB.Connection")
  curDir = Server.MapPath("../database/bruger.mdb")
  oConn.Open "DBQ="& curDir &";Driver={Microsoft Access Driver (*.mdb)};"

'  Open a recordset
'  ****************

'  Select each file
'  ****************
  For each file In mySmartUpload.Files
  '  Only if the file exist
  '  **********************
      If not file.IsMissing Then

      '  Add the current file in a DB field
      '  **********************************
file.SaveAs "d:\web\localuser\pretsmann.dk\public_html\images\" & mySmartUpload.form("annonce_id") & "_" & counter & "." & file.FileExt
filnavn = "http://www.pretsmann.dk/images/" & mySmartUpload.form("annonce_id") & "_" & counter & "." & file.FileExt

felt = CStr("Img" & counter)
SQL = "Update annoncer Set "&felt&" = '" & filnavn & "' Where brugernavn = '" & Session("brugernavn") & "' "

      oConn.Execute (SQL)
     
        intCount = intCount + 1
      End If
  counter = counter + 1
  Next

'  Display the number of files uploaded
'  ************************************
    If Err Then
      stripstate = ("Filen var for stor: Den maksimale filstørrelse er 50 kb.<br><br>" & Err.description)
  Else

      stripstate = (intCount & " file(s) uploaded.<BR>")
  End If


'  Destruction
'  ***********
  oConn.Close
  Set oConn = Nothing
               
                        %>
Avatar billede pretsmann Nybegynder
12. februar 2005 - 23:28 #38
KANON Ellebaek, det virker perfekt !!!

Laver du lige et svar...

Kan du muligvis fortælle mig hvordan man får vist billedet udfra stien i db'en - altså således at feltet kun vises hvis der er uploadet billede.
Avatar billede ellebaek Nybegynder
12. februar 2005 - 23:34 #39
du kan hente alt indholdet ud og så sige:

if rs.fields("felt") <> "" then
så er der et billede i databasen
else
så er der ikke noget billede..
end if

Så skal du blot gøre det for hvert af de 3 billeder...
Avatar billede pretsmann Nybegynder
12. februar 2005 - 23:37 #40
ok takker mange gange for hjælpen...

det var kanon hjælp!!!
Avatar billede ellebaek Nybegynder
12. februar 2005 - 23:39 #41
Anytime. ;-)

Takker for points..
..Ellebæk!
Avatar billede pretsmann Nybegynder
17. februar 2005 - 20:30 #42
-> Ellebæk, håber du kigger med endnu på denne ;-)

Billeder uploades fint med det rigtige navn - men stien der gemmes i db'en gemmes i alle de poster hvor det pågældende brugernavn står... D.v.s. det samme billede vises på alle de anonncer brugeren har indtastet.

Kan du være mig behjælpelig med at rette dette ?
Avatar billede pretsmann Nybegynder
18. februar 2005 - 19:43 #43
Det fungerer nu...

eagleeye kiggede forbi og løste problemet.
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