java.io.IOException: Corrupt form data: premature ending

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • oll3i
    Contributor
    • Mar 2007
    • 679

    java.io.IOException: Corrupt form data: premature ending

    WARNING: StandardWrapper Valve[FileUploadHandl er]: Servlet.service () for servlet FileUploadHandl er threw exception
    java.io.IOExcep tion: Corrupt form data: premature ending
    on line 74

    Code:
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
    
    package myPackage;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.util.*;
    import javax.mail.*;
    import java.lang.Object;
    import javax.mail.internet.*;
    import javax.activation.*;
    import java.io.IOException;
    import java.io.PrintWriter;
    import javax.mail.MessagingException;
    import javax.servlet.http.HttpSession;
    import java.util.*;
    import java.net.InetAddress;
    import java.util.Properties;
    import java.util.Date;
    import javax.mail.*;
    
    import javax.mail.internet.*;
    import java.io.File;
    
    import com.sun.mail.smtp.*;
    import javazoom.upload.*;
    import org.apache.commons.fileupload.FileItem;
    import org.apache.commons.fileupload.disk.DiskFileItemFactory;
    import org.apache.commons.fileupload.servlet.ServletFileUpload;
    import org.apache.commons.fileupload.FileUploadException;
    import java.io.File;
    import java.io.IOException;
    import java.util.List;
    import java.util.Properties;
    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.disk.DiskFileItemFactory;
    import org.apache.commons.fileupload.servlet.ServletFileUpload;
    
    import org.apache.commons.fileupload.FileItemFactory;
    import org.apache.commons.fileupload.FileUploadException;
    
    
    
    public class FileUploadHandler extends HttpServlet {
        private final String UPLOAD_DIRECTORY = "d:/WebmailHRWorkingDir";
       
        @Override
        public void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            String host = "mail.purcon.pl";
            response.setContentType("text/html");
    		PrintWriter out = response.getWriter();
    
    		out.println("Hello<br/>");
    
    
    boolean isMultipartContent = ServletFileUpload.isMultipartContent(request);
     if (!isMultipartContent) {
    out.println("You are not trying to upload<br/>");
    			return;}
     
     
     try{
         MultipartFormDataRequest mrequest = new MultipartFormDataRequest(request);
     mrequest = new MultipartFormDataRequest(request);
     String to=mrequest.getParameter("to");
     String from = mrequest.getParameter("from");                    
        
          String subject=mrequest.getParameter("subject");
          String body=mrequest.getParameter("body");                      
            Properties properties = System.getProperties();
    
          // Setup mail server
          
    properties.put("mail.smtp.host", host);
    properties.put("mail.smtp.port", "587");
    properties.put("mail.smtp.user", from);
    properties.put("mail.smtp.auth", "true");
    properties.put("mail.smtp.password","m1ssy0u"); 
    properties.put("mail.smtp.starttls.enable", "true");
     Session session = Session.getInstance(properties,new javax.mail.Authenticator()   
                    {protected javax.mail.PasswordAuthentication    
                        getPasswordAuthentication()    
                    {return new javax.mail.PasswordAuthentication("kasia@purcon.pl","m1ssy0u");}});   
                 
           
                    
      ///if (MultipartFormDataRequest.isMultipartFormData(request)) 
      //{
      //try{
        /// 
           
                    
     
        
           
      
          
     
            
          
              
                 
                  Message msg = new MimeMessage(session);   
                 
                  msg.setFrom(new InternetAddress(from)); 
                  msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to));   
      
                  msg.setSubject(subject); 
               // create the message part    
                  MimeBodyPart messageBodyPart =    
                    new MimeBodyPart();   
              //fill message   
                  messageBodyPart.setText(body);   
                  Multipart multipart = new MimeMultipart();   
                  multipart.addBodyPart(messageBodyPart);   
               // Part two is attachment   
                  messageBodyPart = new MimeBodyPart();   
      
                  
                       messageBodyPart = new MimeBodyPart();   
       
      
     
    
    
    		
    		out.println("You are trying to upload<br/>");
    
    
    
                   FileItemFactory factory = new DiskFileItemFactory();
    		ServletFileUpload upload = new ServletFileUpload(factory);
     
                   
    			List<FileItem> fields = upload.parseRequest(request);
    			out.println("Number of fields: " + fields.size() + "<br/><br/>");
    			Iterator<FileItem> it = fields.iterator();
    			if (!it.hasNext()) {
    				out.println("No fields found");
    				return;
    			}
                            out.println("<table border=\"1\">");
    			while (it.hasNext()) {
    				out.println("<tr>");
    				FileItem fileItem = it.next();
    				boolean isFormField = fileItem.isFormField();
    				if (isFormField) {
    					out.println("<td>regular form field</td><td>FIELD NAME: " + fileItem.getFieldName() + 
    							"<br/>STRING: " + fileItem.getString()
    							);
    					out.println("</td>");
    				} else {
                                        
                   DataSource source =    
                    new FileDataSource(new File(UPLOAD_DIRECTORY + File.separator +  fileItem.getString()));   
                  System.out.println("source="+source.getName());
                  messageBodyPart.setDataHandler(   
                    new DataHandler(source));   
                  messageBodyPart.setFileName(fileItem.getName());   
                  multipart.addBodyPart(messageBodyPart); 
    					out.println("<td>file form field</td><td>FIELD NAME: " + fileItem.getFieldName() +
    							"<br/>STRING: " + fileItem.getString() +
    							"<br/>NAME: " + fileItem.getName() +
    							"<br/>CONTENT TYPE: " + fileItem.getContentType() +
    							"<br/>SIZE (BYTES): " + fileItem.getSize() +
    							"<br/>TO STRING: " + fileItem.toString()
    							);
    					out.println("</td>");
                                            
                                            
    				}
    				out.println("</tr>");
    			}
    			out.println("</table>");
    		} catch (FileUploadException e) {
    			e.printStackTrace();
                      
      } catch (MessagingException e) {
      e.printStackTrace();
      } catch (UploadException e) {
      e.printStackTrace();
      }
     }
     }
Working...