Avatar billede perj2000 Novice
09. maj 2006 - 22:40 Der er 11 kommentarer og
1 løsning

enctype="multipart/form-data" og form data

Hej folks
Når man poster en form med  enctype="multipart/form-data" hvorfor er det så ikke muligt at requeste data fra denne form i et program ?

Problemet er persist.upload som forlanger denne enctype. Når jeg i formen fjerner dette, kan jeg requeste.værdien og vise den, men så virker
persist.upload ikke.

Det er da noget af et dilemma. Hvad kan der gøres for at kunne få fat i de felter der postes fra formen ?.

Hilsen
Per
Avatar billede eagleeye Praktikant
09. maj 2006 - 22:43 #1
Når du uplaoder kan skal man bruge upload komponenetens form collection så man skal skrive dette hvis navet på dit upload object er upload:


xx = upload.form("xx")
Avatar billede eagleeye Praktikant
09. maj 2006 - 22:45 #2
Navet på upload objektet er i den linie Server.CreateObject:

Set Upload = Server.CreateObject("Persits.Upload")
Avatar billede radiohead Nybegynder
09. maj 2006 - 22:48 #3
"multipart/form-data" arbejder med binær kode for at kunne håndtere upload af filer o.l... Derfor kan man ikke requeste derfra.
Avatar billede perj2000 Novice
10. maj 2006 - 00:41 #4
Jeg får ikke noget ud af at skrive: xx = upload.form("xx") (altså Dok1=upload.form("File1"). File1 er navnet på det dokument jeg vil uploade ...
<form navn=a method=post enctype="multipart/form-data" action='upload.asp'>
<input type="file" size="15" name="File1">
</form>
I programmet upload.asp displayes ikke noget ved at skrive:
Dok1 = upload.form("File1")
response.write(Dok1)

Hvad gør jeg galt ?

Hilsen
Avatar billede eagleeye Praktikant
10. maj 2006 - 16:55 #5
Hvis du skal havde fat i filen skal du bruge files collection:

doc1 = upload.files("File1").name
Avatar billede eagleeye Praktikant
10. maj 2006 - 16:56 #6
ja og så lige dok1 og ikke doc1 :)
Avatar billede eagleeye Praktikant
10. maj 2006 - 16:58 #7
Det skulle være fileName og ikke name hvis du vil havde fil navnet på den fil du har uploaded:

dok1 = upload.files("File1").filename
Avatar billede perj2000 Novice
10. maj 2006 - 20:13 #8
Fedt eagleeye. Jeg kan vist komme videre nu. Tak for hjælpen
Avatar billede perj2000 Novice
10. maj 2006 - 20:14 #9
Har du forresten modtaget dine points ?
/Per
Avatar billede eagleeye Praktikant
10. maj 2006 - 20:17 #10
Ja tak, jeg har fået point.
Avatar billede perj2000 Novice
11. maj 2006 - 23:58 #11
Hejsan
Lige et par spørgsmål i forbindelse med ovenstående ...
Hvis jeg nu har flere <input file .....> i en form der submittes, hvordan kan jeg da teste i modtage programmet på om de enkelte er udfyldt. Hvis jeg kun udfylder en ud af f.eks. 3 fejler modtage programmet med "Object required: 'Upload.files(...)' " ?

Hvordan får jeg fat i indholdet af et felt som er placeret i en hidden field i en form med enctype="multipart/form-data" når jeg nu ikke kan requeste værdien med request.form ?
Avatar billede eagleeye Praktikant
12. maj 2006 - 00:26 #12
Du får fat i input felter af type "file" med files collection.
Du får fat i alle andre input felter med form collection på upload objectet som virker lige som request.form men man skriver navnet på upload objectet i stedet for request. Så

navn = request.form("navn")

Vil blive til dette hvis upload objectet hedder upload:

navn = Upload.form("navn")




For at tjekke om en fil er uploaded kan du gøre sådan her:

If Not Upload.Files("File1") Is Nothing Then
  dok1 = upload.files("File1").filename
End If



Du kan også lave et loop igennem files collectionm, og tjekke på .Name propertyen som er input felt navnet:

for each file in Upload.Files
  if lcase (file.Nane) = "file1" then
    navn = file.fileName
  end if
next
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