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