Avatar billede blaatand Nybegynder
11. august 2002 - 11:27 Der er 28 kommentarer og
1 løsning

Jeg skal lige bruge lidt hjælp med upload til database :)

Ok, på www.uo-dan.dk/test er det jeg arbejder på...

Min default fil med forms ser således her ud:

<form method="post" enctype="multipart/form-data" action="recive.asp">
  <p>Info: <br>
    <textarea name="info" cols="30" rows="5"></textarea>
    <br>
    Replay Submitter:<br>
    <input type="text" name="virtual2">
    <br>
    Replay fil:<br>
    <input type=file name="virtual1">
  </p>
  <p>
    <input type=submit value="upload!">
</p>
</form>



Min recive fil ser således her ud:

<%
Set Upload = Server.CreateObject("Persits.Upload.1")
' Gem filer i hukommelsen
Upload.SaveToMemory

Path = "d:\home\uodandk\www\test"
Count = 0
For Each File in Upload.Files
    if (LCase(Right(File.ExtractFilename, 3)) = "w3g") then
    File.SaveAs Path & "\" & File.ExtractFilename
    Count = Count + 1
  end if
Next
Response.Write Count & " fil(er) modtaget."
%>
<%
' Databaseforbindelse
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath ("replaydb.mdb")
Conn.Open DSN

strSQL = "INSERT INTO replay (info, author) VALUES ('" & Upload.Form("info") & "','" & Upload.Form("author") & "','" & Upload.form("virtual1") & "')"

' SQL sætning eksekveres
Conn.Execute(strSQL)

' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
%>
<a href="files.asp">klik her for at se filoversigten...</a>

Jeg skal bruge lidt hjælp til at redigere i recive filen, så når jeg uploader en fil, så skal info, filnavn, og submitter gemmes i en database...

Nogen der er frisk på at hjælpe mig lidt med den her? Den burde ikke være så svær for en der har prøvet det før :)
Avatar billede blaatand Nybegynder
11. august 2002 - 11:28 #1
Skal lige siges at jeg har prøvet lidt frem sel, som man kan se på scriptet ;)
Avatar billede agg-zeus Nybegynder
11. august 2002 - 11:39 #2
' Obtain file object
Set File = Upload.Files("picname")

    filename = file.filename

Så laver du din SQL sætning og skriver:

File.ToDatabase Connect, SQL
Avatar billede agg-zeus Nybegynder
11. august 2002 - 11:40 #3
Ellers kan du jo finde dokumentation på www.aspupload.com
Avatar billede agg-zeus Nybegynder
11. august 2002 - 11:41 #4
Avatar billede blaatand Nybegynder
11. august 2002 - 11:42 #5
Har kigegt på aspupload.com, men har ikke kunne finde noget jeg kunne bruge...
Avatar billede agg-zeus Nybegynder
11. august 2002 - 11:44 #6
er det kun 1 fil der kan uploades ?
Avatar billede blaatand Nybegynder
11. august 2002 - 11:44 #7
Hehe, fatter nada af det der...
Avatar billede blaatand Nybegynder
11. august 2002 - 11:45 #8
ja, kun en fil af gangen...

kig på uo-dan.dk/test

den kan kun modtage w3g filer (warcraft3 replay filer)
Avatar billede agg-zeus Nybegynder
11. august 2002 - 11:49 #9
Prøv denne :

<%
Set Upload = Server.CreateObject("Persits.Upload.1")
' Gem filer i hukommelsen
Upload.SaveToMemory

Path = "d:\home\uodandk\www\test"
'Count = 0
'For Each File in Upload.Files
    if (LCase(Right(File.ExtractFilename, 3)) = "w3g") then
    File.SaveAs Path & "\" & File.ExtractFilename
'    Count = Count + 1
  end if
'Next
Response.Write Count & " fil(er) modtaget."
%>
<%
' Fil objectet !
Set File = Upload.Files("virtual1")

' Databaseforbindelse
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath ("replaydb.mdb")
Conn.Open DSN

    filename = file.filename
   
strSQL = "INSERT INTO replay (info, author) VALUES ('" & Upload.Form("info") & "','" & Upload.Form("virtual2") & "','" & filename & "')"

' SQL sætning eksekveres
' Din gamle SQL.execute
' Conn.Execute(strSQL)

' Den nye !
File.ToDatabase Connect, SQL

' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
%>
Avatar billede agg-zeus Nybegynder
11. august 2002 - 11:50 #10
ups lige et par småfejl.. sådan her:

<%
Set Upload = Server.CreateObject("Persits.Upload.1")
' Gem filer i hukommelsen
Upload.SaveToMemory

Path = "d:\home\uodandk\www\test"
'Count = 0
'For Each File in Upload.Files
    if (LCase(Right(File.ExtractFilename, 3)) = "w3g") then
    File.SaveAs Path & "\" & File.ExtractFilename
'    Count = Count + 1
  end if
'Next
Response.Write Count & " fil(er) modtaget."
%>
<%
' Fil objectet !
Set File = Upload.Files("virtual1")

' Databaseforbindelse
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath ("replaydb.mdb")
Conn.Open DSN

    filename = file.filename
   
strSQL = "INSERT INTO replay (info, author, filnavn) VALUES ('" & Upload.Form("info") & "','" & Upload.Form("virtual2") & "','" & filename & "')"

' SQL sætning eksekveres
' Din gamle SQL.execute
' Conn.Execute(strSQL)

' Den nye !
File.ToDatabase Connect, strSQL

' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
%>
Avatar billede blaatand Nybegynder
11. august 2002 - 11:51 #11
Microsoft VBScript runtime error '800a01a8'

Object required: 'File'

/test/recive.asp, line 9
Avatar billede agg-zeus Nybegynder
11. august 2002 - 11:55 #12
prøv denne her:

<%
Set Upload = Server.CreateObject("Persits.Upload.1")
' Gem filer i hukommelsen
Upload.SaveToMemory

Set File = Upload.Files("virtual1")

Path = "d:\home\uodandk\www\test"
'Count = 0
'For Each File in Upload.Files
    if (LCase(Right(File.ExtractFilename, 3)) = "w3g") then
    File.SaveAs Path & "\" & File.ExtractFilename
'    Count = Count + 1
  end if
'Next
Response.Write Count & " fil(er) modtaget."
%>
<%
' Fil objectet !


' Databaseforbindelse
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath ("replaydb.mdb")
Conn.Open DSN

    filename = file.filename
   
strSQL = "INSERT INTO replay (info, author, filnavn) VALUES ('" & Upload.Form("info") & "','" & Upload.Form("virtual2") & "','" & filename & "')"

' SQL sætning eksekveres
' Din gamle SQL.execute
' Conn.Execute(strSQL)

' Den nye !
File.ToDatabase Connect, strSQL

' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
%>



Set File = Upload.Files("virtual1") er rykket op i toppen...
Avatar billede blaatand Nybegynder
11. august 2002 - 11:56 #13
Microsoft VBScript runtime error '800a01b6'

Object doesn't support this property or method: 'filename'

/test/recive.asp, line 28


Hmm
Avatar billede agg-zeus Nybegynder
11. august 2002 - 11:57 #14
prøv også i din formular at lave <input type=file name="virtual1">
om til

<input type="file" name="virtual1" accept=".w3g">
Avatar billede blaatand Nybegynder
11. august 2002 - 11:57 #15
Den sender filen med nu, men den skriver ikke til databasen
Avatar billede agg-zeus Nybegynder
11. august 2002 - 11:58 #16
jeg bruger
Set Upload = Server.CreateObject("Persits.Upload")
men du bruger
Set Upload = Server.CreateObject("Persits.Upload.1") ?
Hvorfor ? prøv at fjerne det sidste .1
Avatar billede blaatand Nybegynder
11. august 2002 - 12:00 #17
<%
Set Upload = Server.CreateObject("Persits.Upload")
' Gem filer i hukommelsen
Upload.SaveToMemory

Set File = Upload.Files("virtual1")

Path = "d:\home\uodandk\www\test"
'Count = 0
'For Each File in Upload.Files
    if (LCase(Right(File.ExtractFilename, 3)) = "w3g") then
    File.SaveAs Path & "\" & File.ExtractFilename
'    Count = Count + 1
  end if
'Next
Response.Write Count & " fil(er) modtaget."
%>
<%
' Fil objectet !


' Databaseforbindelse
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath ("replaydb.mdb")
Conn.Open DSN

    filename = file.filename
   
strSQL = "INSERT INTO replay (info, author, filnavn) VALUES ('" & Upload.Form("info") & "','" & Upload.Form("virtual2") & "','" & filename & "')"

' SQL sætning eksekveres
' Din gamle SQL.execute
' Conn.Execute(strSQL)

' Den nye !
File.ToDatabase Connect, strSQL

' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
%>
Avatar billede blaatand Nybegynder
11. august 2002 - 12:01 #18
Får stadig

Microsoft VBScript runtime error '800a01b6'

Object doesn't support this property or method: 'filename'

/test/recive.asp, line 28
Avatar billede agg-zeus Nybegynder
11. august 2002 - 12:03 #19
<%
Set Upload = Server.CreateObject("Persits.Upload.1")
' Gem filer i hukommelsen
Upload.SaveToMemory

Set File = Upload.Files("virtual1")

Path = "d:\home\uodandk\www\test"

if (LCase(Right(File.ExtractFilename, 3)) = "w3g") then
    Upload.Save Path & "\" & File.ExtractFilename
end if

Response.Write Count & " fil(er) modtaget."
%>
Avatar billede blaatand Nybegynder
11. august 2002 - 12:04 #20
Microsoft VBScript runtime error '800a01fb'

An exception occurred: 'Upload.Save'

/test/recive.asp, line 11
Avatar billede agg-zeus Nybegynder
11. august 2002 - 12:08 #21
<%
Set Upload = Server.CreateObject("Persits.Upload")
' Gem filer i hukommelsen
Upload.SaveToMemory

Set File = Upload.Files("virtual1")

Path = "d:\home\uodandk\www\test"

if (LCase(Right(File.ExtractFilename, 3)) = "w3g") then
    Upload.Save Path & "\" & File.ExtractFilename
end if

Response.Write Count & " fil(er) modtaget."
%>
Avatar billede blaatand Nybegynder
11. august 2002 - 12:10 #22
Microsoft VBScript runtime error '800a01fb'

An exception occurred: 'Upload.Save'

/test/recive.asp, line 11
Avatar billede blaatand Nybegynder
11. august 2002 - 12:23 #23
Kan også maile filerne til dig hvis du vil have dem... lettere at arbejde med på den måde i stedet for det der "prøv det" :)
Avatar billede agg-zeus Nybegynder
11. august 2002 - 12:24 #24
Dette er eksemplet fra www.aspupload.com

<%
Set Upload = Server.CreateObject("Persits.Upload")
' Capture files
Upload.Save "c:\upload"

' Obtain file object
Set File = Upload.Files("THEFILE")

If Not File Is Nothing Then
  ' Build ODBC connection string
  Connect = "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath(".\aspupload.mdb")

  ' If you use SQL Server, the connecton string must look as follows:
  ' Connect = "Driver=SQL Server;Server=MYSERVER;UID=sa;PWD=xxxxxxxxx"

  ' Build SQL INSERT statement
  SQL = "INSERT INTO MYIMAGES(image_blob, filename, description, filesize) VALUES(?, '"
  SQL = SQL & File.Filename & "', '"
  SQL = SQL & Replace(Upload.Form("DESCR"), "'", "''") & "', "
  SQL = SQL & File.Size & ")"

  ' Save to database
  File.ToDatabase Connect, SQL
  Response.Write "File saved."
Else
  Response.Write "File not selected."
End If
%>


Til dig vil den se nogenlunde sådan ud:

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

' Obtain file object
Set File = Upload.Files("vitual1")

    If (LCase(Right(File.ExtractFilename, 3)) = "w3g") then
' Capture files
Upload.Save "d:\home\uodandk\www\test"
    End If
   
If Not File Is Nothing Then
  ' Build ODBC connection string
  Connect = "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("replaydb.mdb")

  ' Build SQL INSERT statement
  SQL = "INSERT INTO replay(filnavn, info, author) VALUES('"
  SQL = SQL & File.Filename & "', '"
  SQL = SQL & Replace(Upload.Form("info"), "'", "''") & "', '"
  SQL = SQL & Replace(Upload.Form("virtual2"), "'", "''") & "')"

  ' Save to database
  File.ToDatabase Connect, SQL
  Response.Write "File saved."
Else
  Response.Write "File not selected."
End If
%>
Avatar billede agg-zeus Nybegynder
11. august 2002 - 12:25 #25
ja det må du godt... smartdog@tiscali.dk
Hvis du har Messenger så tilføj mig der det er nemmere at snakke det end her...
Avatar billede blaatand Nybegynder
11. august 2002 - 12:26 #26
får denne på en direkte copy/paste:

Microsoft VBScript runtime error '800a01a8'

Object required: 'File'

/test/recive.asp, line 7
Avatar billede blaatand Nybegynder
11. august 2002 - 12:27 #27
Har tilføjet dig på messenger ;)
Avatar billede blaatand Nybegynder
20. august 2002 - 18:23 #28
*lukker emne*
Avatar billede blaatand Nybegynder
20. august 2002 - 18:23 #29
hov
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