<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ page import="java.io.*,java.util.*, javax.servlet.*"%>
<%@ page import="org.apache.commons.fileupload.*"%>
<%@ page import="org.apache.commons.fileupload.disk.*"%>
<%@ page import="org.apache.commons.fileupload.servlet.*"%>
<%@ page import="org.apache.commons.io.output.*"%>
<!DOCTYPE html>
<
html
>
<
head
>
<
meta
charset
=
"ISO-8859-1"
>
<
title
>Insert title here</
title
>
</
head
>
<
body
>
<%
File file;
// maximum file size allowed
// representing 5 Mega Bytes.
int maxFileSize = 5000 * 1024;
// maximum memory allocated to store the file
// from request for further processing
int maxMemSize = 5000 * 1024;
// file path to store the uploaded files
String filePath = "d:/file-data/";
// checking whethe multipart formdata is used
// as request encoding type
String contentType = request.getContentType();
if (contentType.indexOf("multipart/form-data") != -1) {
try {
// creating factory object from commons fileupload
// to store the object
DiskFileItemFactory factory = new DiskFileItemFactory();
// maximum size that will be stored in memory
factory.setSizeThreshold(maxMemSize);
// if the file is larger than memory size store it in tmp directory
ServletContext servletContext = this.getServletConfig().getServletContext();
File repository = (File) servletContext.getAttribute("javax.servlet.context.tempdir");
factory.setRepository(repository);
// Create a new file upload handler
ServletFileUpload upload = new ServletFileUpload(factory);
// maximum file size to be uploaded.
upload.setSizeMax(maxFileSize);
// Parse the request to get file items.
List<
FileItem
> fileItems = upload.parseRequest(request);
// Process the uploaded file items
Iterator<
FileItem
> i = fileItems.iterator();
out.println("<
html
>");
out.println("<
head
>");
out.println("<
title
>JSP File upload</
title
>");
out.println("</
head
>");
out.println("<
body
>");
while (i.hasNext()) {
FileItem fi = i.next();
if (!fi.isFormField()) {
// Get the uploaded file parameters
String fieldName = fi.getFieldName();
String fileName = fi.getName();
boolean isInMemory = fi.isInMemory();
long sizeInBytes = fi.getSize();
// Write the file
file = new File(filePath + fileName);
fi.write(file);
out.println("Uploaded Filename: " + filePath + fileName + "<
br
>");
}
}
out.println("</
body
>");
out.println("</
html
>");
} catch (Exception ex) {
out.println(ex.getMessage());
System.out.println(ex);
}
} else {
out.println("<
html
>");
out.println("<
head
>");
out.println("<
title
>Servlet upload</
title
>");
out.println("</
head
>");
out.println("<
body
>");
out.println("<
p
>No file uploaded</
p
>");
out.println("</
body
>");
out.println("</
html
>");
}
%>
</
body
>
</
html
>