Sophie

Sophie

distrib > Fedora > 14 > x86_64 > media > updates > by-pkgid > cd38b09e3cb8d6c675b02d30393e68af > files > 49

kaya-doc-0.5.2-8.fc14.noarch.rpm

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;
}