Avatar billede meltinis Nybegynder
09. januar 2004 - 23:50 Der er 6 kommentarer og
1 løsning

File og tekst i samme Form med Chili!Upload

Jeg skal have lavet en form som både kan "POST"'e en tekst og en fil... Jeg benytter Chili!Upload. Jeg kan ikke benytte mig af  ENCTYPE="multipart/form-data" da jeg så ikke kan lave en REQUEST på teksten. Er der en måde jeg kan oprette mit Server.CreateObject("Chili.Upload.1")uden at benytte ENCTYPE="multipart/form-data". Dvs. noget i retningen af:
fbase = Server.CreateObject("Chili.Upload.1")
fbase.SourceFileName = c:\bla\blabla\test.txt
fbase.SaveToFile(Server.mapPath("/billeder/"&test.txt)

Kan man tilføre fbase.SourceFileName en fil eller skal den modtage den via ENCTYPE="multipart/form-data"?
Avatar billede eagleeye Praktikant
09. januar 2004 - 23:57 #1
Det skal modtages via ENCTYPE="multipart/form-data" når man bruge upload komponenter. Typisk for andre upload komponenter skriver man objectet navn .Form("xxx") så har man adgang til de andre form data.

fbase = Server.CreateObject("Chili.Upload.1")
fbase.SourceFileName = c:\bla\blabla\test.txt
fbase.SaveToFile(Server.mapPath("/billeder/"&test.txt)

formfelt = fbase.Form("xxx")

Eller:
formfelt = fbase("xxx")


Problemet er at det i ændre udgaver af Chili!ASP ikke virker. Der skulle være en Form collection i objectet..
Avatar billede eagleeye Praktikant
09. januar 2004 - 23:58 #2
ændre = ældre
Avatar billede meltinis Nybegynder
10. januar 2004 - 00:01 #3
Udfylder
formfelt = fbase.Form("xxx")
ikke feltet og ikke en varibel? Jeg skal tage teksten fra FORM'en og sætte ind i en DB sammen med filnavnet fra filen... Det er ikke noget problem... problemet er at jeg skal uploade filen samtidig...
Avatar billede eagleeye Praktikant
10. januar 2004 - 00:09 #4
Normalt bruger man Request.Form("xxx") til at hente indholdet af form felterne:
str = Request.Form("navn")

Når man bruger en upload komponent bruger man ENCTYPE="multipart/form-data" hvilket gør man ikke kan bruge Request.Form til at hente form indholdet. Derfor har upload komponenter en form-collection som indeholder de samme data som Request.Form gør. Man skriver så navet på det upload object man har lavet i stedet for Request. Hvis man kalder sit object for fbase så ville det være:
str = fbase.Form("navn")

Problemet med Chili!Upload er den ifølge dens dokumentation har en form-collection. Men det har den ikke, og den er måske kommet med i de nyeste versioner af Chili!ASP. Jeg har selv b-one som udbyder og kan ikke få den form collection til at virke samme med Chili!Upload.

Jeg har prøvet at udsrkive indholder, når man bruger ENCTYPE="multipart/form-data" og man kan se form fetlerne + deres data.

ByteCount = Request.TotalBytes
BinRead = Request.BinaryRead(ByteCount)
Response.BinaryWrite(BinRead)
Avatar billede meltinis Nybegynder
10. januar 2004 - 00:13 #5
OK... lyder sku'da lidt uprofessionelt :( Nå, men jeg tror jeg har løst det på en anden måde... besværlig, men jeg tror jeg kan få det til at virke.
Jeg har tænkt mig at gøre det over to forms. Jeg gemmer så den unikke nøgle fra DB i en session key og så må jeg gemme i DB over to omgang... Bittert da det andet ville have været MEGET lettere :(

Hvis du vil have nogle point.. så smid et svar :)
Avatar billede eagleeye Praktikant
10. januar 2004 - 00:22 #6
Du kan se dokumentation på Chili!Upload her:
http://docs.sun.com/source/817-2514-10/Ch13_SpicePack68.html

Jeg har prøvet flere ting men hver gang skriver den noget i stil med dette:
Object doesn't support this property or method

Alternativt skal du lave upload uden komponent som dette eks:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnasdj01/html/asp0900.asp
Koden kan downloades herfra, det er en bruger fra eksperten:
http://www.cwboy.dk/downloads/
Avatar billede meltinis Nybegynder
10. januar 2004 - 00:25 #7
OK... jeg vil kigge på det... takker for din hjælp.
Pointene er dine
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