Sample Code for File Upload Using Commons FileUpload
to use this jsp you will need to have io commons and fileupload commons in your classpath
----------
<%@ page import="org.apache.commons.fileupload.disk.*,org.apache.commons.fileupload.util.*,org.apache.commons.fileupload.servlet.*,org.apache.commons.fileupload.*,java.io.*,java.util.*;"%>
<html>
<body>
<%
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
boolean writeToFile = false;
if (isMultipart) {
DiskFileItemFactory factory = new DiskFileItemFactory();
//factory.setSizeThreshold(yourMaxMemorySize); you may want to set this
factory.setRepository(new File("/tmp"));
ServletFileUpload upload = new ServletFileUpload(factory);
//upload.setSizeMax(yourMaxRequestSize); you may want to set this as well
List items = upload.parseRequest(request);
Iterator iter = items.iterator();
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();
String name = item.getFieldName();
if (item.isFormField()) {
out.println("Form field " + name + " with value "
+ item.getString() + ".<br/>");
if (name.equals("writeToFile") && item.getString().equals("TRUE")) {
writeToFile = true;
}
} else {
out.println("File field " + name + " with file name "
+ item.getName() + " detected.<br/>");
if (writeToFile) {
File uploadedFile = new File("/tmp/"+System.currentTimeMillis()+"."+item.getName());
item.write(uploadedFile);
out.print("File saved to " + uploadedFile.getName()+"<br/>");
} else {
out.print("File contents: <pre>");
InputStream uploadedStream = item.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(uploadedStream));
String line = "";
while (line != null) {
line = br.readLine();
out.println(line);
}
uploadedStream.close();
out.print("</pre>");
}
}
}
}
else {
%>
<form ACTION="index.jsp" METHOD="post" ENCTYPE="multipart/form-data">
writeToFile <input TYPE="text" NAME="writeToFile" VALUE="TRUE" ><br/>
field1 <input TYPE="text" NAME="field1" VALUE="some value"><br/>
file <input TYPE="file" NAME="fileToUpload" VALUE=""><br/>
<input TYPE="submit" VALUE="upload file">
</form>
<%
}
%>
</body>
</html>
Labels: java


0 Comments:
Post a Comment
<< Home