To know about file upload

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • vijaykumardahiya
    New Member
    • Oct 2008
    • 11

    To know about file upload

    Hello To Every One,
    I want to know that when I upload the File like a image from html page Its not show on servlet page using appropriate logic.
    I read the FileUpload Home page.But I am still confused.
    Is that true that file uploaded image can not show on servlet.Its store to database or memory..??
    Please assist me.
    Thanks.
  • JosAH
    Recognized Expert MVP
    • Mar 2007
    • 11453

    #2
    Originally posted by vijaykumardahiy a
    Hello To Every One,
    I want to know that when I upload the File like a image from html page Its not show on servlet page using appropriate logic.
    I read the FileUpload Home page.But I am still confused.
    Is that true that file uploaded image can not show on servlet.Its store to database or memory..??
    Please assist me.
    Thanks.
    All your browser does when you have included a 'input type="file"' item is send the file data together with the 'post' request. Your HttpServletRequ est has a getInputStream( ) method that lets you read that file data. I don't understand your remark "Is it true that file uploaded image can not show on servlet". The Servlet doesn't even know that it has just read an image. You have to take care of that.

    kind regards,

    Jos

    Comment

    • vijaykumardahiya
      New Member
      • Oct 2008
      • 11

      #3
      To know about File Upload

      My issue is upload the image and display on servlet.But Servlet page not display the image properly.Althou gh Servlet page show a small icon.and server side show Length but not show the index value,Its show -1.like that:
      Code:
      Length is: 6315
      ******************
      index is: -1
      ++++++++++++
      Please review my code.
      Here my servlet file:
      Upload file.java:
      Code:
      import java.io.*;
      import java.io.IOException;
      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.DiskFileUpload;
      import org.apache.commons.fileupload.FileItem;
      import org.apache.commons.fileupload.FileItemFactory;
      import org.apache.commons.fileupload.FileUpload;
      import org.apache.commons.fileupload.FileUploadException;
       
      public class UploadFile extends HttpServlet {
       
      public void doPost(HttpServletRequest req,HttpServletResponse res)
      {
      try	
      	{ 
      FileUpload fup=new FileUpload();
      boolean isMultipart = FileUpload.isMultipartContent(req);
      // Create a new file upload handler
      System.out.println(isMultipart);
      DiskFileUpload upload = new DiskFileUpload();
       
      // Parse the request
      List  items = upload.parseRequest(req);
       
      Iterator iter = items.iterator();
      while (iter.hasNext()) 
      		{
       
      FileItem item = (FileItem) iter.next();
      if (item.isFormField()) 	{
      System.out.println("its a field");
      			}
       else 
      			{
      System.out.println("its a file");
      System.out.println(item.getName());
      File cfile=new File(item.getName());
      File tosave=new File(getServletContext().getRealPath("/"),cfile.getName());
      item.write(tosave);
      String contentType = req.getContentType();
      System.out.println("Content type is :: " +contentType);
      if ((contentType != null) && (contentType.indexOf("multipart/form-data") >= 0)) 
      		{
      InputStream in = req.getInputStream();
      int len = req.getContentLength();
      System.out.println("Length is: "+len);
      byte [] dataBytes = new byte[len];
      int index=in.read(dataBytes, 1, len);
      System.out.println("********");
      System.out.println("index is: "+index);
      System.out.println("+++++++++");
                   res.reset();
      res.setContentType("image/gif");
           res.getOutputStream().write(dataBytes, 0, len);
      res.getOutputStream().flush();    
               System.out.println("Suceesfully displayed");
      			}
      			}
      		}
      	}	
      catch(Exception e){System.out.println(e);}
      }
      }
      Please Suggest me.

      Comment

      • vijaykumardahiya
        New Member
        • Oct 2008
        • 11

        #4
        Problem face-when upload the file and display on servlet

        Hello Java Experts,
        My Requirement is when I upload the File like a Image from a Html page,It should be display on Servlet.
        But at run time when I upload the image and click on submit button It not display on servlet,Its appear a downloaded form and downloaded on disk when click on save button.Other thing is that It not a .jpg form.that mean It does not open by photo gallery.that message show file format not supported by Photo Gallary.
        Here my files:
        Please review:
        Home.html:
        Code:
        <html>
        <form method="post" action="tmp" enctype="multipart/form-data">
        Name
        <input type="text" name="name"/>
        File
        <input type="file" name="file"/>
        <input type="submit"/>
        </form>
        </html>
        UploadFile.java :
        Code:
        import java.io.*;
        import java.io.IOException;
        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.DiskFileUpload;
        import org.apache.commons.fileupload.FileItem;
        import org.apache.commons.fileupload.FileItemFactory;
        import org.apache.commons.fileupload.FileUpload;
        import org.apache.commons.fileupload.FileUploadException;
        import javax.activation.DataSource;
        public class UploadFile extends HttpServlet {
        
        public void doPost(HttpServletRequest req,HttpServletResponse res)
        {
        try{
        FileUpload fup=new FileUpload();
        boolean isMultipart = FileUpload.isMultipartContent(req);
        // Create a new file upload handler
        System.out.println(isMultipart);
        DiskFileUpload upload = new DiskFileUpload();
        
        // Parse the request
        List  items = upload.parseRequest(req);
        
        Iterator iter = items.iterator();
        while (iter.hasNext()) {
        
        FileItem item = (FileItem) iter.next();
        InputStream in=item.getInputStream();
        int len = req.getContentLength();
         System.out.println("*************");
         System.out.println("Length is: "+len); 
         System.out.println("+++++++++++");
        byte [] dataBytes = new byte[len]; 
        int index=in.read(dataBytes, 0, len);
        System.out.println("********");
         System.out.println("index"+index);
        System.out.println("+++++++++");
        //  res.reset();
        res.setContentType("image/jpg");
             res.getOutputStream().write(dataBytes,0,len);
        res.getOutputStream().flush();  
        System.out.println("Suceesfully send");
        }
        
        }
        catch(Exception e){System.out.println(e);}
        }
        }
        Please help me I try this program from a long time But I am not suceed.
        Last edited by Nepomuk; Dec 15 '08, 12:37 AM. Reason: Please use [CODE] tags!

        Comment

        Working...