down load!

Venu Gopal <[email protected]>
Newsgroups gmane.comp.java.sun.servlet
Message-ID <BF493B193A334743AA9EF48945E69C1346A0A1@exchange.india.zensutra.com>
	
Hai Everybody,

I have an issues when downloading a file using sevlet.

Steps to Produce..
*       I have Servlet to check Transaciton type,
*       if Transaction type is checkout i am calling /dowload servlet using servlet dispatcher RequestDispatcher.forward(request, response)
*       browser Download dialogue box popus up with options  open and save.
*       I selected save and clicked on ok
*       SaveAs popup window is displayed. here i am canceling the process.
*       Now Server gets hangged. I con't make any more requests after this.

Note: It is happeining only for big files.
        I am streaming data in servlet.

Thanxs in advance.

Venu

Code:

        public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
        {
                OutputStream outStream = null;
                InputStream inputStream = null;

                try
                {
                        String strFilePath = (String)request.getAttribute("filePath");
                        strFilePath = strFilePath.replaceAll("~=~","/");
                        File targetFile = new File(strFilePath + java.io.File.separatorChar, (String)request.getAttribute("int_fileName"));

                        String strMimeType = context.getMimeType(strFilePath + java.io.File.separatorChar + (String)request.getAttribute("int_fileName"));
                        //response.setContentType("application/download");

                        if(strMimeType == null)
                                strMimeType = "text/plain";

                        response.setContentType(strMimeType);

                        if(request.getParameter("context") == null || !request.getParameter("context").equalsIgnoreCase("view"))
                                response.setHeader("Content-Disposition", "attachment;filename=\"" + (String)request.getAttribute("dbName") + "\"");
                        else
                                response.setHeader("Content-Disposition", "filename=\"" + (String)request.getAttribute("dbName") + "\"");

                        outStream = response.getOutputStream();

                        inputStream = new BufferedInputStream(new FileInputStream(targetFile));

                        Enumeration names = request.getParameterNames();

                        int j = 0;

                        while(names.hasMoreElements())
                        {
                                System.out.println(j + " --> " + names.nextElement());
                        }

                        int charInput;
                        while( (charInput = inputStream.read()) != -1 )
                        {
                                System.out.println("Inside 3");
                                outStream.write((char)charInput);
                        }
                }
                catch(Exception e)
                {
                        System.out.println("Inside 4");
                        e.printStackTrace();
                }
                finally
                {
                        outStream.flush();
                        outStream.close();
                        inputStream.close();
                }
        }
}
 

___________________________________________________________________________
To unsubscribe, send email to [email protected] and include in the body
of the message "signoff SERVLET-INTEREST".

Archives: http://archives.java.sun.com/archives/servlet-interest.html
Resources: http://java.sun.com/products/servlet/external-resources.html
LISTSERV Help: http://www.lsoft.com/manuals/user/user.html
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.