/**
*
*/
package org.inbio.m3s.gwt.server.servlets;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Iterator;
import java.util.List;
import javax.servlet.ServletException;
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.FileItemFactory;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.inbio.m3s.config.Properties;
import org.inbio.m3s.gwt.client.config.ClientProperties;
/**
* @author jgutierrez
*
*/
public class ImportFileUploadServlet extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = 1L;
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code>
* methods.
*
* @param request
* servlet request
* @param response
* servlet response
*/
protected void processRequest(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
/*
* TODO output your page here out.println("<html>"); out.println("<head>");
* out.println("<title>Servlet FileUploadManager</title>");
* out.println("</head>"); out.println("<body>"); out.println("<h1>Servlet
* FileUploadManager at " + request.getContextPath () + "</h1>");
* out.println("</body>"); out.println("</html>");
*/
out.close();
}
/**
* Handles the file Upload from the client
*
* @param request
* servlet request
* @param response
* servlet response
*/
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// Creates a new HttpSession so the other servlets could identify
// the file that has been upload
boolean multipartContent = ServletFileUpload
.isMultipartContent(request);
// Check that we have a file upload request
boolean isMultipart = multipartContent;
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
String fileName = "";
File cfile = null;
// Create a factory for disk-based file items
if (isMultipart) {
FileItemFactory factory = new DiskFileItemFactory();
// Create a new file upload handler
ServletFileUpload upload = new ServletFileUpload(factory);
// Parse the request
try {
List items = upload.parseRequest(request);
// Process the uploaded items
Iterator iter = items.iterator();
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();
if (item.isFormField() == false) {
cfile = new File(item.getName());
fileName = cfile.getName();
fileName = fileName.replace(' ', '-');
fileName = fileName.replace('\\', '-');
fileName = fileName.replace('/', '-');
fileName = fileName.replace(':', '-');
File tosave = new File(Properties.REAL_TEMP_FILES_DIR
+ fileName);
try {
item.write(tosave);
} catch (Exception ex) {
ex.printStackTrace();
out
.print(ClientProperties.ERROR
+ ".No se pudo guardar el archivo en el servidor");
}
}
}
out.print(ClientProperties.OK + "." + fileName);
} catch (FileUploadException e) {
e.printStackTrace();
out
.print(ClientProperties.ERROR
+ ".No se encontro el archivo");
System.out.println("ERRROR EXCEPCION VOLO: ");
}
} else {
System.out.println("isMultipartContent = false");
}
out.close();
}
}