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