Avatar billede jmc Nybegynder
08. oktober 2002 - 22:58 Der er 16 kommentarer og
1 løsning

upload

Jeg kan ikke  blive klog på hvad der sker, så nu poster jeg altså hele scriptet:

For Each File in Upload.Files fanger hele tiden kun af af filerne, lige meget hvordan jeg drejer den. Den skal virke på den måde, at man kan udfylde højre eller venstre, eller begge og altid få opdateret. Hvis en er tom, skal den ikke overskrive med tom. Håber dette var klar nok?


<%@LANGUAGE="VBSCRIPT"%>
<%
Set Upload = Server.CreateObject("Persits.Upload.1")
'Upload.IgnoreNoPost = True

' Upload files
'Upload.OverwriteFiles = False ' Generate unique names
Upload.SetMaxSize 1048576 ' Truncate files above 1MB
Upload.save "c:\www\domain.dk\www\billeder\"

For Each File in Upload.Files
  if file_v = "" then
    file_v = File.ExtractFileName
  else
    file_h = File.ExtractFileName
  end if
Next

' Databaseforbindelse - husk at angive sti til din database

    Set Conn = Server.CreateObject("ADODB.connection")
    Conn.ConnectionString = "DRIVER={Microsoft Access Driver (*.mdb)};" & _
    "DBQ=c:\www\domain.dk\www\db\katalog.mdb"
    Conn.Open
   
' SQL sætning opbygges
'filnavn_v = "test1.txt"
'filnavn_h = "test2.txt"
strSQL = "UPDATE produkt SET v = '" & file_v & "', h = '" & file_h & "' WHERE produkt_id=" & Request.QueryString("produkt_id")


' SQL sætning eksekveres
'Response.Write("sql er:" & strSQL)
Conn.Execute(strSQL)

' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
%>
Avatar billede eagleeye Praktikant
08. oktober 2002 - 23:23 #1
kan du i sted for denne for:

For Each File in Upload.Files
  if file_v = "" then
    file_v = File.ExtractFileName
  else
    file_h = File.ExtractFileName
  end if
Next



bruge:

file_v = Upload.Files(1).ExtractFileName
file_h = Upload.Files(2).ExtractFileName
Avatar billede jmc Nybegynder
08. oktober 2002 - 23:25 #2
Det var noget i den stil jeg faktisk søgte efter. ;o)
den virker og jeg takker.
Avatar billede eagleeye Praktikant
08. oktober 2002 - 23:33 #3
Ok :) så bare svar selv jeg har vist får point før idag for den if sætninge i for sætnignen men den var ikke så god :)
Avatar billede jmc Nybegynder
08. oktober 2002 - 23:58 #4
OK, takker men svare du er skal du også have points ->

Hvorfor kan man egentligt ikke gøre sådan?

if file_v <> "" then file_v = Upload.Files(1).ExtractFileName
if file_h <> "" then file_h = Upload.Files(2).ExtractFileName

Jeg modtager to tomme felter i min database ???
Avatar billede eagleeye Praktikant
09. oktober 2002 - 00:03 #5
if sætnignen tjekker på om file_v ikke er tom eller om den indeholder noget...

Hvis det er føste sted du skriver variablen så vil den være tom så man får aldrig udført det som står i then delen..

Så det skal lave sådan her så tjekker den om eksvis file_v er tom og hvis den er det sættes file_v = Upload.Files(1).ExtractFileName


if file_v = "" then file_v = Upload.Files(1).ExtractFileName
if file_h = "" then file_h = Upload.Files(2).ExtractFileName
Avatar billede jmc Nybegynder
09. oktober 2002 - 00:07 #6
det giver mig bare en fejl:

Persits.Upload.1 error '800a0009'
Index out of range.
Upload.asp, line 14

Det er den sidste linier som jeg lader stå tom for en test.
Avatar billede eagleeye Praktikant
09. oktober 2002 - 00:08 #7
Er det hvis man vælge en fil?
Avatar billede jmc Nybegynder
09. oktober 2002 - 00:10 #8
det er hvis file_h er tom! hvis man ikke har valgt en fil til nr. to at de to form felter der er i uploaden. comprento?
Avatar billede eagleeye Praktikant
09. oktober 2002 - 00:12 #9
ok.. hmm så man kan ikke bruge (1) og (2) .... man kan også skrive input navnet på filerne i stedet for 1 og 2

file_v = Upload.Files("input_felt_navn_fil1").ExtractFileName
file_h = Upload.Files("input_felt_navn_fil2").ExtractFileName
Avatar billede excession Nybegynder
09. oktober 2002 - 00:21 #10
du kan bare sige

If Not File is Nothing Then
...

End If
Avatar billede jmc Nybegynder
09. oktober 2002 - 00:28 #11
Dette giver:

If Not File is Nothing Then
Object required


koden:
If Not File is Nothing Then
file_v = Upload.Files(1).ExtractFileName
file_h = Upload.Files(2).ExtractFileName
End If
Avatar billede jmc Nybegynder
09. oktober 2002 - 00:28 #12
sorry fejlen er:

Microsoft VBScript runtime error '800a01a8'
Object required
Avatar billede excession Nybegynder
09. oktober 2002 - 00:29 #13
hvad med det her:
<%@LANGUAGE="VBSCRIPT"%>
<%
Set Upload = Server.CreateObject("Persits.Upload.1")
'Upload.IgnoreNoPost = True

' Upload files
'Upload.OverwriteFiles = False ' Generate unique names
Upload.SetMaxSize 1048576 ' Truncate files above 1MB
Upload.save "c:\www\domain.dk\www\billeder\"

For Each File in Upload.Files

If Not File is Nothing Then
  if file_v = "" then
    file_v = File.ExtractFileName
  else
    file_h = File.ExtractFileName
  end if
Next
End IF

' Databaseforbindelse - husk at angive sti til din database

    Set Conn = Server.CreateObject("ADODB.connection")
    Conn.ConnectionString = "DRIVER={Microsoft Access Driver (*.mdb)};" & _
    "DBQ=c:\www\domain.dk\www\db\katalog.mdb"
    Conn.Open
   
' SQL sætning opbygges
'filnavn_v = "test1.txt"
'filnavn_h = "test2.txt"
strSQL = "UPDATE produkt SET v = '" & file_v & "', h = '" & file_h & "' WHERE produkt_id=" & Request.QueryString("produkt_id")


' SQL sætning eksekveres
'Response.Write("sql er:" & strSQL)
Conn.Execute(strSQL)

' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
%>
Avatar billede eagleeye Praktikant
09. oktober 2002 - 00:30 #14
Prøv sådan her:


if not (Upload.Files("input_felt_navn_fil1") is nothing) then
  file_v = Upload.Files("input_felt_navn_fil1").ExtractFileName
end if
if not (Upload.Files("input_felt_navn_fil2") is nothing) then
  file_h = Upload.Files("input_felt_navn_fil2").ExtractFileName
end if
Avatar billede excession Nybegynder
09. oktober 2002 - 00:32 #15
hov det var forkert!

<%@LANGUAGE="VBSCRIPT"%>
<%
Set Upload = Server.CreateObject("Persits.Upload.1")
'Upload.IgnoreNoPost = True

' Upload files
'Upload.OverwriteFiles = False ' Generate unique names
Upload.SetMaxSize 1048576 ' Truncate files above 1MB
Upload.save "c:\www\domain.dk\www\billeder\"

For Each File in Upload.Files

If Not File is Nothing Then
  if file_v = "" then
    file_v = File.ExtractFileName
  else
    file_h = File.ExtractFileName
  end if
End IF

Next
' Databaseforbindelse - husk at angive sti til din database

    Set Conn = Server.CreateObject("ADODB.connection")
    Conn.ConnectionString = "DRIVER={Microsoft Access Driver (*.mdb)};" & _
    "DBQ=c:\www\domain.dk\www\db\katalog.mdb"
    Conn.Open
   
' SQL sætning opbygges
'filnavn_v = "test1.txt"
'filnavn_h = "test2.txt"
strSQL = "UPDATE produkt SET v = '" & file_v & "', h = '" & file_h & "' WHERE produkt_id=" & Request.QueryString("produkt_id")


' SQL sætning eksekveres
'Response.Write("sql er:" & strSQL)
Conn.Execute(strSQL)

' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
%>
Avatar billede eagleeye Praktikant
09. oktober 2002 - 00:35 #16
Den sidste jeg viste virker for mig, jeg har lige prøvet at lave en test og ligge op på mit web-hotel, og så kan man first vælge det kun er en af filerne eller dem begge der skal loades. Du skal bare rette de to felt anvet til at passe med din form.
Avatar billede jmc Nybegynder
09. oktober 2002 - 00:39 #17
excession > yep - det er det script jeg arbejder med.
eagleeye > fino, jeg takker.

nu mangler jeg bare min sql, men (is nothing) virker nu. ;o)

strSQL = "UPDATE produkt SET v = '" & file_v & "', h = '" & file_h & "' WHERE produkt_id=" & Request.QueryString("produkt_id")

Hvis file_h er tom bliver der opdateret med tom.
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