webapp upload; import System; import HTMLDocument; import Webapp; // files uploaded to HTTP_KAYA_UPLOAD_DIR environment variable, or // "." unless we set the location in webconfig() which you should do before // actually using this code! Void webconfig() { allowFileUploads(); // setKayaUploadDir("/users/myaccount/tmp"); } HTMLDocument webmain() { enableDebugging(); doc = new(HTML4Strict,"File upload test"); appendExisting(doc.body,runHandler(@uploadForm)); return doc; } ElementTree uploadForm() { div = anonymousBlock; form = addLocalForm(div,true); f1 = addFieldset(form,"Upload a file"); void(addTextInput(f1,InputText,"input1","",30)); void(addTextInput(f1,InputText,"input2","",30)); void(addTextInput(f1,InputText,"input2","",30)); void(addTextInput(f1,InputFile,"input3","",30)); void(addTextInput(f1,InputFile,"input3","",30)); void(addTextInput(f1,InputText,"input4","",30)); void(addTextInput(f1,InputFile,"input5","",30)); void(addTextInput(f1,InputText,"input6","",30)); void(addLocalControlInput(f1,"Submit",processUpload@(),1)); return form; } ElementTree processUpload(Int discard) { div = anonymousBlock; void(addParagraph(div,"I1: "+incomingValue("input1",DataPost))); void(addParagraph(div,"I2: "+incomingData("input2",DataPost)[0])); void(addParagraph(div,"I2: "+incomingData("input2",DataPost)[1])); void(addParagraph(div,"I4: "+incomingValue("input4",DataPost))); void(addParagraph(div,"I6: "+incomingValue("input6",DataPost))); files = incomingFiles("input3"); push(files,incomingFile("input5")); for file in files { void(addParagraph(div,"File: "+originalName(file)+" is at "+tempPath(file)+" of type "+contentType(file))); } // and at this point you could copy them, read them into databases, etc. return div; }