%@ page import="java.util.List" %>
<%@ page import="java.util.Iterator" %>
<%@ page import="java.io.File" %>
<%@ page import="org.apache.commons.fileupload.servlet.ServletFileUpload"%>
<%@ page import="org.apache.commons.fileupload.disk.DiskFileItemFactory"%>
<%@ page import="org.apache.commons.fileupload.*"%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
Upload file
<%
// String dir = "/tmp/";
String dir = "/webapps/losaltospeace.org/losaltospeace.org/images/";
long maxFileSize = 500*1024;
//Create a progress listener
ProgressListener progressListener = new ProgressListener(){
private long kBytes = -1;
public void update(long pBytesRead, long pContentLength, int pItems) {
long hundredkBytes = pBytesRead / 100000;
if (hundredkBytes == kBytes) {
return;
}
kBytes = hundredkBytes;
System.out.println("Reading item " + pItems);
if (pContentLength == -1) {
System.out.println("So far, " + pBytesRead + " bytes have been read.");
} else {
System.out.println("So far, " + pBytesRead + " of " + pContentLength
+ " bytes have been read.");
}
}
};
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
if (!isMultipart) {
} else {
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setProgressListener(progressListener);
upload.setSizeMax(maxFileSize);
List items = null;
try {
items = upload.parseRequest(request);
} catch (FileUploadException e) {
e.printStackTrace();
return;
}
Iterator itr = items.iterator();
while (itr.hasNext()) {
FileItem item = (FileItem) itr.next();
if (item.isFormField()) {
String name = item.getFieldName();
String value = item.getString();
%>
<%=name%>: <%=value%>
<%
} else {
String fullname = "";
String url = "";
long itemSize = 0;
try {
String itemName = item.getName();
int ind = itemName.lastIndexOf( '\\' );
if( ind < 0 ) {
ind = itemName.lastIndexOf( '/' );
}
if( ind > 0 ) {
itemName = itemName.substring( ind + 1 );
}
String itemType = item.getContentType();
itemSize = item.getSize();
fullname = dir + itemName;
url = "images/" + itemName;
File savedFile = new File(fullname);
if( savedFile.exists() ) {
%>
Error: file already exists (<%=fullname%>)
<%
break;
} else if ( itemSize < 1 ) {
%>
Error: empty or non-existing file (<%=itemName%>)
<%
break;
} else if ( itemSize > maxFileSize ) {
%>
Error: file too large (<%=itemName%> = <%=itemSize%> bytes; max allowed = <%=maxFileSize%>)
<%
break;
} else if ( !(itemType.startsWith("image/") || itemName.endsWith(".pdf")) ) {
%>
Error: not an image file (<%=itemName%>)
<%
break;
} else {
item.write(savedFile);
}
} catch (Exception e) {
e.printStackTrace();
break;
}
%>
Saved <%=fullname%>
Bytes: <%=itemSize%>
<%
}
}
}
%>