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

Reply via email to