Android Open Source - LogLite Upload Download File Servlet






From Project

Back to project page LogLite.

License

The source code is released under:

MIT License

If you think the Android project LogLite listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package r2b.apps.loglite;
//from  w ww  .j av a2  s.  c  o m
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.util.Iterator;
import java.util.List;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;

@WebServlet("/UploadDownloadFileServlet")
public class UploadDownloadFileServlet extends HttpServlet {

  private static final long serialVersionUID = 1L;
  private ServletFileUpload uploader = null;

  @Override
  public void init() throws ServletException {
    DiskFileItemFactory fileFactory = new DiskFileItemFactory();
    File filesDir = (File) getServletContext().getAttribute("FILES_DIR_FILE");
    fileFactory.setRepository(filesDir);
    this.uploader = new ServletFileUpload(fileFactory);
  }

  protected void doGet(HttpServletRequest request,
      HttpServletResponse response) throws ServletException, IOException {
    
    String fileName = request.getParameter("fileName");
    
    if (fileName == null || fileName.equals("")) {
      throw new ServletException("File Name can't be null or empty");
    }
    
    File file = new File(request.getServletContext().getAttribute("FILES_DIR") + File.separator + fileName);
    if (!file.exists()) {
      throw new ServletException("File doesn't exists on server.");
    }
    
    System.out.println("File location on server::" + file.getAbsolutePath());
    
    ServletContext ctx = getServletContext();
    InputStream fis = new FileInputStream(file);
    String mimeType = ctx.getMimeType(file.getAbsolutePath());
    response.setContentType(mimeType != null ? mimeType: "application/octet-stream");
    response.setContentLength((int) file.length());
    response.setHeader("Content-Disposition", "attachment; filename=\""+ fileName + "\"");

    ServletOutputStream os = response.getOutputStream();
    byte[] bufferData = new byte[1024];
    int read = 0;
    while ((read = fis.read(bufferData)) != -1) {
      os.write(bufferData, 0, read);
    }
    os.flush();
    os.close();
    fis.close();
    
    System.out.println("File downloaded at client successfully");
  }

  protected void doPost(HttpServletRequest request,
      HttpServletResponse response) throws ServletException, IOException {
    
    if (!ServletFileUpload.isMultipartContent(request)) {
      throw new ServletException(
          "Content type is not multipart/form-data");
    }

    response.setContentType("text/html");
    PrintWriter out = response.getWriter();
    out.write("<html><head></head><body>");
    
    try {
      List<FileItem> fileItemsList = uploader.parseRequest(request);
      Iterator<FileItem> fileItemsIterator = fileItemsList.iterator();
      
      while (fileItemsIterator.hasNext()) {
        FileItem fileItem = fileItemsIterator.next();
        System.out.println("FieldName=" + fileItem.getFieldName());
        System.out.println("FileName=" + fileItem.getName());
        System.out.println("ContentType=" + fileItem.getContentType());
        System.out.println("Size in bytes=" + fileItem.getSize());

        File file = new File(request.getServletContext().getAttribute("FILES_DIR")
            + File.separator + fileItem.getName());
        System.out.println("Absolute Path at server= "+ file.getAbsolutePath());
        fileItem.write(file);
        out.write("File " + fileItem.getName()+ " uploaded successfully.");
        out.write("<br>");
        out.write("<a href=\"UploadDownloadFileServlet?fileName="
            + fileItem.getName() + "\">Download "
            + fileItem.getName() + "</a>");
      }
    } catch (FileUploadException e) {
      out.write("Exception in uploading file.");
    } catch (Exception e) {
      out.write("Exception in uploading file.");
    }
    out.write("</body></html>");
  }

}




Java Source Code List

r2b.apps.loglite.FileLocationContextListener.java
r2b.apps.loglite.UploadDownloadFileServlet.java
r2b.apps.utils.Cons.java
r2b.apps.utils.FileUtils.java
r2b.apps.utils.MultipartEntity.java
r2b.apps.utils.StringUtils.java
r2b.apps.utils.Utils.java
r2b.apps.utils.ZipUtils.java
r2b.apps.utils.log.FileReceiver.java
r2b.apps.utils.log.Logger.java
r2b.apps.utils.log.Receiver.java
r2b.apps.utils.log.RemoteReceiver.java