<%@ 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%>

URL: <%=url%>

Bytes: <%=itemSize%>

<% } } } %>