package e4s.tutorial;
import e4s.html.*;
import e4s.html.input.extended.FILEUPLOAD;
import e4s.html.input.extended.E4InputFieldName;
import e4s.html.input.extended.E4ValidatorFileUpload;
import e4s.servlet.E4ModuleImplementation;
/**
* Example on image uploading capabilities.
*
* Simply create a form containing an IMAGEFIELD element, a pickup mechanism
* provides also uploading and selection of images.
*
* {@tutorial Example_FILEUPLOAD}
*/
public class Example_FILEUPLOAD extends E4ModuleImplementation
{
public static E4Method start = null;
public static E4Method startA = null;
public static E4Method startB = null;
public static E4Method uploadA = null;
public static E4Method uploadB = null;
public void start(HTML html)
{
html.Message(E4Message.CAPTION,"File Upload Example");
html.P();
html.A(startA).print("Upload without validating example");
html.P();
html.A(startB).print("Upload and validating example");
}
public void startA(HTML html)
{
html.Message(E4Message.CAPTION,"File Upload Example - no validation");
html.P();
FORM form = html.FORM();
form.setEncryptionType_Multidata();
form.setAction(uploadA);
form.TEXTFIELD(new E4InputFieldName("DESCRIPTION"),"Description",30);
form.P();
// whatever is the name of the source file, it will be stored on the server named
// yourfile
FILEUPLOAD f1 = form.FILEUPLOAD(new E4InputFieldName("FILE_1"),"File #1",30);
f1.setServer_Name("yourfile.dat");
f1.setServer_Path("uploaded/");
form.P();
FILEUPLOAD f2 = form.FILEUPLOAD(new E4InputFieldName("FILE_2"),"File #2",30);
f2.setServer_Path("uploaded/");
form.P();
FILEUPLOAD f3 = form.FILEUPLOAD(new E4InputFieldName("FILE_3"),"File #3",30);
form.P();
form.FORM_Submit("Upload");
}
public void uploadA(HTML html, E4CgiParams params)
{
html.Message(E4Message.INFO,"File upload completed or maybe errors");
params.toTable(html.TABLE());
}
public FORM makeForm()
{
FORM form = new FORM("TESTFORM");
form.setEncryptionType_Multidata();
form.setAction(uploadB);
form.TEXTFIELD(new E4InputFieldName("DESCRIPTION"),"Description",30);
form.P();
// whatever is the name of the source file, it will be stored on the server named
// yourfile. A validation routine is added, the input for this field is mandatory.
// The filesize is limited to 10000 bytes
FILEUPLOAD f1 = form.FILEUPLOAD(new E4InputFieldName("FILE_1"),"File #1",30);
f1.setValidator(new E4ValidatorFileUpload(getServlet(),true));
f1.setServer_Name("yourfile.dat");
f1.setServer_Path("uploaded/");
f1.setMaxUploadSize(10000);
f1.setExtensionsAllowed( new String[]{"gif","jpg","jpeg","png"} );
form.P();
FILEUPLOAD f2 = form.FILEUPLOAD(new E4InputFieldName("FILE_2"),"File #2",30);
f2.setValidator(new E4ValidatorFileUpload(getServlet(),false));
f2.setServer_Path("uploaded/");
form.P();
FILEUPLOAD f3 = form.FILEUPLOAD(new E4InputFieldName("FILE_3"),"File #3",30);
f3.setValidator(new E4ValidatorFileUpload(getServlet(),false));
form.P();
form.FORM_Submit("Upload");
return form;
}
public void startB(HTML html)
{
html.Message(E4Message.CAPTION,"File Upload Example - including validation");
html.P();
FORM form = makeForm();
html.addElement(form);
}
public void uploadB(HTML html, E4CgiParams params)
throws Exception
{
FORM form = makeForm();
if (! form.validate(params,getServlet()))
{
// validation failed, put the form to the html context and display again
html.addElement(form);
}
else
{
html.Message(E4Message.INFO,"File upload completed");
params.toTable(html.TABLE());
}
}
}