Avatar billede killstun Nybegynder
08. oktober 2005 - 14:13 Der er 9 kommentarer og
1 løsning

ASPSmart upload til mappe og database

Jeg har før anvendt Persits upload komponenten, men skal nu anvende ASPSmart upload i stedet. Her støder jeg dog på nogle problemer når jeg vil indsætte filnavnet i databasen. Hvorledes kan jeg gøre dette. Jeg har prøvet med dette:

Upload.html:
<FORM METHOD="POST" ACTION="sql.asp" ENCTYPE="multipart/form-data">
<INPUT TYPE="FILE" NAME="FILE1" SIZE="50"><BR>
<INPUT TYPE="FILE" NAME="FILE2" SIZE="50"><BR>
<INPUT TYPE="SUBMIT" VALUE="Upload">
</FORM>

Sql.asp:
<%
'  Variables
'  *********
  Dim mySmartUpload
  Dim intCount
       
'  Object creation
'  ***************
  Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")

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

'  Save the files with their original names in a virtual path of the web server
'  ****************************************************************************
  intCount = mySmartUpload.Save("upload")
%>

<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("/vti_log/prove.mdb")
Conn.Open DSN
strSQL = "Insert into prove (FILE1, FILE2) values('" & FILE1 & "', '" & FILE2 & "')"
Conn.Execute(strSQL)
Response.write "billlednavn indsat"
Response.Write(intCount & " file(s) uploaded.")
Conn.Close
Set Conn = Nothing
%>

- men her indsætter den ikke noget filnavn i databasen? Nogle der kan hjælpe med dette?
Avatar billede larsbachmanndk Nybegynder
08. oktober 2005 - 14:24 #1
Er ikke så stærk i dette, men så vist jeg kan se mangler du noget med:

FILE1 = request.Form("FILE1")
FILE2 = request.Form("FILE2")
Avatar billede killstun Nybegynder
08. oktober 2005 - 14:29 #2
Kan godt se hvad du mener, men som jeg har lavet det øverst, virkede med persits. Har nu lige prøvet med request.form i stedet, og det virkede ikke. Der får jeg denne fejl:
Microsoft VBScript runtime error '800a01a8'
Object required: ''
/upload/sql.asp, line 32 (hvilket er insert linien)
Avatar billede cpufan Juniormester
08. oktober 2005 - 14:33 #3
intCount = 1 
For each file In mySmartUpload.Files
  '  Only if the file exist
  '  **********************
      If not file.IsMissing Then

    FILE & intcount = file.FileName
        intCount = intCount + 1
      End If
  Next
Avatar billede killstun Nybegynder
08. oktober 2005 - 15:39 #4
cpufan, jeg forstår ikke helt hvor jeg skal indsætte dine linier. Kan jeg få dig til at smelte det sammen med mit eksempel. Ved nemlig ikke om jeg skal anvende request.upload, request form, eller slet ikke noget som i mit første eksempel.
Avatar billede cpufan Juniormester
08. oktober 2005 - 16:29 #5
intCount = mySmartUpload.Save("upload") ' ind herefter
Count = 1 
For each file In mySmartUpload.Files
  '  Only if the file exist
  '  **********************
      If not file.IsMissing Then

    FILE & count = file.FileName
        Count = Count + 1
      End If
  Next
' men før dette
Set Conn = Server.CreateObject("ADODB.Connection")
' jeg har omdøbt min tæller da jeg kan se du har en intcount i forvejen
'så brug dette her kode.
' så behøves du ikke request.form eller upload.form
Avatar billede killstun Nybegynder
09. oktober 2005 - 12:13 #6
hmmm, kan ikke få det til at virke. Jeg får denne fejl meddelelse:

Microsoft VBScript compilation error '800a03ea'
Syntax error
/upload/sql.asp, line 31
FILE & count = file.FileName
-----^
Avatar billede cpufan Juniormester
09. oktober 2005 - 12:28 #7
prøv med FILE + 1

og ved count = 1
laver du om til
dim count, FILE1, FILE2
count = 1
Avatar billede cpufan Juniormester
09. oktober 2005 - 12:29 #8
argh
ikke FILE + 1
men FILE + count
Avatar billede killstun Nybegynder
09. oktober 2005 - 13:49 #9
Nu siger den i stedet:

Microsoft VBScript runtime error '800a01b6'
Object doesn't support this property or method: 'file'
/upload/sql.asp, line 32

Linie 32 er samme linie som før. Alt i alt ser det nu således ud:

<%
'  Variables
'  *********
  Dim mySmartUpload
  Dim intCount
       
'  Object creation
'  ***************
  Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")

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

'  Save the files with their original names in a virtual path of the web server
'  ****************************************************************************
  intCount = mySmartUpload.Save("upload")

dim count, FILE1, FILE2
count = 1
For each file In mySmartUpload.Files
  '  Only if the file exist
  '  **********************
      If not file.IsMissing Then

    FILE + count = file.FileName
        Count = Count + 1
      End If
  Next
' så behøves du ikke request.form eller upload.form
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("/vti_log/prove.mdb")
Conn.Open DSN
strSQL = "Insert into prove (FILE1, FILE2) values('" & FILE1 & "', '" & FILE2 & "')"
Conn.Execute(strSQL)
Response.write "Fil(er) uploadet"
Response.Write(intCount & " file(s) uploaded.")
Conn.Close
Set Conn = Nothing
%>
Avatar billede killstun Nybegynder
05. maj 2006 - 14:40 #10
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