File download with JSP

I have found some code within this forum that I have been attempting to use to allow customers to download text files to their PC's. The code below is what I have come up with from my understandings on exactly how it should work, but it just will not work ...
Am I correct in assuming that the file that I want to make available for download is specified within the File f = new File(path+filename); section???
I have made the path variable refer directly to the file system (/disk2/invoice/) as well as via http (http://domain.com/invoice/) but it will not work !!!
It returns the save/open dialog but as soon as I select an option it returns a windows error prompt as follows:
Internet Explorer cannot download ...p?filename=123414_76453_437 from www.domain.com.
Internet Explorer was not able to open this Internet site. The requested site is either unavailable or cannot be found. Please try again later.
Can someone please tell me, where am I supposed to reference the file to be downloaded and how am I to reference it ???
<%
// get the file name from the calling page
String filename = request.getParameter("filename");
//get the file path to the file I want to make available via download
String path = getServletContext().getInitParameter("invoicePath");
response.setContentType("text/plain");
response.setHeader("Content-Disposition","attachment; filename=\""+filename+"\";");
int iRead;
FileInputStream stream = null;
try {
     File f = new File(path+filename);
     stream = new FileInputStream(f);
     while ((iRead = stream.read()) != -1) {
          out.write(iRead);
     out.flush();
finally {
     if (stream != null) {
          stream.close();
%>
<%@ page import="java.io.*,javax.servlet.*,java.util.* " contentType="text/html" %>
<html>
finally we have success ...     
</html>

For those of you who are still having issues that have been unresolved trying to download a file from a webserver to a client, I have finally figured out how to do so ...
The following code now works for me on Solaris running Tomcat 3.1 and on W2K running JRun 3.2 ...
Issue 1: I specified a contentType=text/html in the page specification ... This must be removed ...
<%@ page ... contentType=text/html%>
Issue 2: The new File() reference must be a direct path to the file on the operating system. This does not work if it is referenced with a http path.
Other than that, I have included the code that I use to make files available for download on our webserver.
<%@ page import="java.io.*,javax.servlet.*,java.util.* "%>
<%
// get the file name
String filename = request.getParameter("filename");
//get the file path
String path = getServletContext().getInitParameter("invoicePath");
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition","attachment; filename=\""+filename+"\";");
int iRead;
FileInputStream stream = null;
try {
     File f = new File("/disk2/wwwhome/psmerged/invoice/" + filename);
     stream = new FileInputStream(f);
     while ((iRead = stream.read()) != -1) {
          out.write(iRead);
     out.flush();
finally {
     if (stream != null) {
          stream.close();
%>

Similar Messages

  • Where do I find the files downloaded with Firefox on my harddrive?

    Where are the downloaded files stored on my hard drive so I can access them?

    You can find the files downloaded with Firefox in '''Downloads''' folder.[Default]
    {for e.g. C:\Documents and Settings\User\My Documents\Downloads }
    OR
    On Downloads window , right click on the file and select '''Open Containing Folder'''.

  • Filename on file download from jsp

     

    This may help:
              ----- Original Message -----
              From: "Erik Lindquist" <[email protected]>
              Newsgroups: weblogic.developer.interest.jsp
              Sent: Wednesday, June 28, 2000 6:20 PM
              Subject: How to dynamically display images in JSPs
              > This took a little while to figure out so I thought I'd share. After
              > doing some research I was led to the following approach on how to load
              > images from an Oracle database into a JSP:
              >
              > The "main" JSP:
              >
              > <HTML>
              > <head>
              > <title>Image Test</title>
              > </head>
              > <body>
              > <center>
              > hello
              > <P>
              > <img border=0 src="getImage.jsp?filename=2cents.GIF">
              > <P>
              > <img border=0 src="getImage.jsp?filename=dollar.gif">
              > <P>
              > world
              > </body>
              > </HTML>
              >
              >
              > And this is the image getter:
              >
              > <% try {
              > response.setContentType("image/gif");
              > String filename = (String) request.getParameter("filename");
              > java.sql.Connection conn =
              > java.sql.DriverManager.getConnection("jdbc:weblogic:pool:orapool"); //
              > connect to db
              > java.sql.Statement stmt = conn.createStatement();
              > String sql = "select image from testimage where filename = '" +
              > filename + "'";
              > java.sql.ResultSet rs = stmt.executeQuery(sql);
              > if (rs.next()) {
              > byte [] image = rs.getBytes(1);
              > java.io.OutputStream os = response.getOutputStream();
              > os.write(image);
              > os.flush();
              > os.close();
              > }
              > conn.close();
              > }
              > catch (Exception x) { System.out.println(x); }
              > %>
              >
              >
              > The thing to note is that there are no <%@ page import="..." %> or <%@
              > page contentType="..." %> tags - just the single scriptlet. It
              > seems that for every "<%@" the weblogic compiler sees it puts
              > out.print("\r\n"); statements in the generated java source.(???) I
              > don't know much about how browsers work but I think that once it sees
              > flat ascii come at it it treats everything that follows as text/plain
              > which is incorrect for the binary stream that's being sent. Another
              > work around was to set out = null; but that's kind of ugly and might
              > produce server errors. The real fix is to write a bean to handle images
              > which I'll work on next (does anybody have any hints on how to do
              > that?)
              Cameron Purdy
              [email protected]
              http://www.tangosol.com
              WebLogic Consulting Available
              "Ramesh" <[email protected]> wrote in message
              news:[email protected]...
              >
              > Hi,
              >
              > Even I could download the files with this technique, I couldn't open the
              file downloaded. It seems the file is getting currepted during tranfer.. Can
              u help me in this regard please?
              >
              > Thank u
              > Ramesh
              >
              > [email protected] (Anders B. Jensen) wrote:
              > >In an Web-application written in Java Server Pages it should be possible
              > >for the user to download data from the web-server. The data will never
              > >exist as a file on the web-server, only in the PrintWriter object, out.
              > >To force the Internet Explorer (IE) to show the download dialog window
              > >the Contenttype of the HTTP-header have been set to "html/transfer". The
              > >question is:
              > >
              > >Is it possible to set the filename appearing in the download dialog
              > >appearing on the client?
              > >
              > >
              > >Below is a listing of the source-code:
              > >
              > ><%@ page extends="com.beasys.portal.admin.PortalJspBase"%>
              > ><jsp:useBean id="download" scope="session" class="dk.lec.DownloadData" />
              > >
              > ><%
              > > String tmpstr;
              > > response.setContentType("html/transfer");
              > > out.clear();
              > > tmpstr=download.getStrbuffer().toString();
              > > out.println(tmpstr.trim());
              > >%>
              > >
              > >
              > >Anders B. Jensen
              > >Consultant, Research & Development
              > >LEC AS
              > >
              > >Remove the SPAMLESS to mail me.
              >
              

  • PDF files download as JSP

    I just upgraded to Leopard 10.5.6 this weekend from Tiger 10.4.11 then upgraded to 10.5.8. All went well except for a small glitch in Mail which I got fixed with the help of this forum. My newest problem is this morning I went online to my bank to download our monthly statement which always is in PDF format. The file downloaded fine, except the file title says it's a PDF, but the extension is .jsp. I contacted the bank and they have changed nothing so I am wondering is there a setting I need to change somewhere that would affect the download? At present I haven't found an application that will open .jsp files, but first I want to get them back to PDF format. Any suggestions will be appreciated.

    Title Man wrote:
    I just upgraded to Leopard 10.5.6 this weekend from Tiger 10.4.11 then upgraded to 10.5.8. All went well except for a small glitch in Mail which I got fixed with the help of this forum. My newest problem is this morning I went online to my bank to download our monthly statement which always is in PDF format. The file downloaded fine, except the file title says it's a PDF, but the extension is .jsp. I contacted the bank and they have changed nothing so I am wondering is there a setting I need to change somewhere that would affect the download? At present I haven't found an application that will open .jsp files, but first I want to get them back to PDF format.
    Have you tried renaming the file so that its extension is ".pdf"? I believe I regularly download PDF files that have "jsp" in the file name, but renaming them corrects the problem.

  • How to make a jar file downloadable with IE

    hello,
    I just bought a website:
    http://www.frozenfountain.net/
    and I put a jar file on it called Logo.jar
    Using Mozilla, the jar file downloads as expected, but with Internet Explorer, it tries to download it as .zip file.
    How do I get it to download as a .jar file with IE?
    thanks

    Just post a link to the Jar. Mozilla will download
    it as a jar. Windows will download it as a zip.
    Only one link. No problem, really. ;-)There is a problem. People who arent as good with computers as you are won't know how to run the jar file after downloading with IE.
    At school, I told someone to download the file, which they did with IE. It downloaded to desktop as a zip. They extracted and were left with a bunch of .class files.
    On a sidenote, how do you draw text with a gradient?

  • Pdf files download with .file extension thus wont open as a pdf

    Hi , when I try to download a pdf document with Firefox, the file downloads but add a .file extension thus wont open as a pdf.
    I do not know if this is relevant but if you try to get the file to open with adobe viewer by telling the pc to open this type of file always with adobe viewer, nothing happens the tick box is greyed out, however if I double click the adobe viewer icon it will quite happily open the downloaded file as a pdf

    The next time you download, STOP, and double check the full name of the file.
    Firefox would not change the file name. But an add-on could.

  • Problem with file download through JSP under WLS6.1 SP3

    Hello,
    We're in the process of trying to migrate from WLS 6.1 SP1 to SP3, and we're encountering
    some difficulties with this migration.
    I'm attaching a very simple JSP here - it's a snippet from a larger more dynamic
    JSP, that I managed to narrow down to a pretty simple case which still doesn't
    work.
    This JSP opens a file residing at "c:\\BDELog.txt" (it's hardcoded - so change
    it to any textual local file on your machine in order to test it), and writes
    it to the output stream as a txt attachment.
    This JSP works perfectly well on SP1, however, on SP3, it fails only during the
    first hit. If you call this JSP again from the same browser window - it'll work.
    Needless to say - this isn't an acceptable behavior for a website.
    Hope you can help.
    Appreciate any response.
    Roy.
    [download.jsp]

    SP4 indeed solved it.
    Thanks again!
    Roy.
    "Eric Gross" <[email protected]> wrote:
    As a follow-up, SP4 is now available.
    Regards,
    Eric
    "Eric Gross" <[email protected]> wrote in message
    news:3dd19974$[email protected]..
    I would wait until SP4(I believe it may be coming out this week actually).
    If you can't wait until then, please contact support for a 1-off patch.
    Regards,
    Eric
    "Roy Abitbol" <[email protected]> wrote in message
    news:3dd10ef1$[email protected]..
    Many thanks !! (sigh of relief...)
    Is there a way to work around this problem - for example - write
    the
    header explicitly
    so that the problematic header will be overriden or simply get a
    patch
    from you
    guys ?
    Or do we have to wait for SP4 ?
    Thanks again,
    Roy.
    "Eric Gross" <[email protected]> wrote:
    This is a known issue and has been fixed.
    The fix is in SP4. This has to do with a bug that IE has with respect
    to a
    header:
    Cache-Control: no-cache="set-cookie"
    We introduced that as the default header to be returned on all
    responses.
    As of SP4(due out very soon), the default behaviour will be notto send
    this
    header back with each response.
    Regards,
    Eric
    "Roy Abitbol" <[email protected]> wrote in message
    news:3dca7f19$[email protected]..
    Hello,
    We're in the process of trying to migrate from WLS 6.1 SP1 to
    SP3,
    and
    we're encountering
    some difficulties with this migration.
    I'm attaching a very simple JSP here - it's a snippet from a largermore
    dynamic
    JSP, that I managed to narrow down to a pretty simple case which
    still
    doesn't
    work.
    This JSP opens a file residing at "c:\\BDELog.txt" (it's hardcoded- so
    change
    it to any textual local file on your machine in order to test
    it),
    and
    writes
    it to the output stream as a txt attachment.
    This JSP works perfectly well on SP1, however, on SP3, it fails
    only
    during the
    first hit. If you call this JSP again from the same browser window- it'll
    work.
    Needless to say - this isn't an acceptable behavior for a website.
    Hope you can help.
    Appreciate any response.
    Roy.

  • Why I have 3 empty ligns in the file downloaded with a JSP

    Hello,
    When a user select some data (extracted from an Oracle database), he could save the data in a flat file. To do this functionnality, I use a JSP which creates a file with the result of the query, and I download to the browser the file by using :
    response.setHeader("Cache-Control","no-store");
    response.setDateHeader("Expires",1000);
    response.setContentType("application/x_msdownload");
    response.setHeader("Content-Disposition","attachement;filename=" + outputFile);
    I could save or open the file.
    BUT I have 3 empty ligns at the begining of the downloaded file.
    Do you know why?
    Next, is it my code of the JSP used to create the file on the server, download it to the browser and delete it:
    <%
    currentReport.load(currentConnection, reportNm, whereCond, inputFile);
    response.setHeader("Cache-Control","no-store");
    response.setDateHeader("Expires",1000);
    response.setContentType("application/x_msdownload");
    response.setHeader("Content-Disposition","attachement;filename=" + outputFile);
    File fin = new File( inputFile);
    if (! (fin.canRead() || fin.isFile()))
    SecurityException se = new SecurityException( inputFile);
    throw se;
    BufferedReader br = new BufferedReader(new FileReader(fin));
    while ((currentLine = br.readLine()) != null)
    out.println( currentLine);
    br.close();
    currentReport.deleteReport();
    response.flushBuffer();
    %>

    I wouldn't use JSP for this, I'd use servlets...
    But the reason is cuz you have 3 lines before the data is written, say like this:
    <@page import="..." >[newline]
    <@page import="..." >[newline]
    <%
    response.setHeader...
    %>[newline]
    <%
    code to get the file...
    %>

  • File Download in JSP, Please help

    I am wondering if somebody can help me with a problem :
    I am trying to register a fact that somebody has downloaded a file
    from my company's website.
    When a user clicks on the link I provided, a message box came up to prompt user with the location to save the file. How can I register the fact that user press "Cancel" instead of OK. In other words I need to be able to tell whether the guy really downloaded it or not.
    Thanks

    So, how to determine if user had pressed 'Cancel' or just the connection is broken?
    The pure JSP cannot do it.
    I think you should have some binary code like applet or active-x to check it.

  • How to make file download in JSP ?

    Friends,
    i am using following code :
    // LISTING FILES IN DIR
            out.println("<br>");
            File dir = new File(dirName);
            String[] children = dir.list();
                 if (children == null)
            // Either dir does not exist or is not a directory
                 else
                    %>
                    <table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="68%" id="AutoNumber1">
                    <tr>
                        <td width="50%" align="center"><font face="Verdana">File</font></td>
                        <td width="50%" align="center"><font face="Verdana">Action</font></td>
                          </tr>   
                        <%
                        for (int i=0; i<children.length; i++)
                        // Get filename of file or directory
                        String filename = children;
    //out.println(filename);
    %>
    <tr>
    <td width="50%">
    <p align="center"><font face="Verdana"><%=filename %></font></td>
    <td width="50%">
    <p align="center"><font face="Verdana"><a href="<%= children[i %">">View</a></font></td>
    </tr>
    <%
    out.println("<br>");
    %>
    SInce i am not able to download file from link.
    link shows path correct but why its not working ??
    HELP ME.
    *i don't want to show real path( physical location of file) on file donwload link.*
    Example :
    *it will not allow to show like following :*
    *C:\project\webUpload\build\web\fuploads\file2.jpg*
    *it may allow like :*
    *\webUpload\fuploads\file2.jpg*
    Thanks</a>

    My friend you are getting it all wrong here...
    Here we would be taking help of a dedicated servlet to locate and download a file(which would be the output the respective concent of depeding of the fineName or fileId you send in).
    Please find some time and try to consider the below case...
    Say i have a Servlet which takes a Request of detailed filePath and would give output as file itself....
    and you prompt you give a link to that servlet from you JSP to download that file...
    Checkout the below Code snippets to get some idea
    DownloadPrompting.JSP:
    ==================
    <a href="FileServlet?fileName=C:\fileuploaded\image1.jpg" title="C:\fileuploaded\image1.jpg">Click Here to download Image1 JPEG File</a>
    <c:forEach var="fileName" items="${sessionScope.fileNames}">
       <a href="FileServlet?fileName=<c:uri value="${fileName}"/>" title="<c:out value="${fileName}"/>">Click Here to download</a>
    </c:forEach>
    -------------------------------------------------------------------------FileServlet.java
    ===========
    package com;
    import javax.servlet.ServletConfig;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.BufferedOutputStream;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.IOException;
    import java.net.URLConnection
    public class FileServlet extends HttpServlet{
      private void processAction(HttpServletRequest request,HttpServletResponse response) throws Exception{
           // getting fileName which user is requesting for
           String fileName = request.getParameter("fileName").replace('\\','/');
           boolean exists = new File(fileName).exists();
           // Checking whether the file Exists or not      
           if(exists){
            FileInputStream input = null;
            BufferedOutputStream output = null; 
            int contentLength = 0;
            try{
                // Getting the Mime-Type
                String contentType = URLConnection.guessContentTypeFromName(fileName); 
                if(contentType == null)        
                   contentType = "application/octet-stream";
                input = new FileInputStream(fileName);
                contentLength = input.available();
                // Enables us to specify of what kind of content we are trying to download.
                response.setContentType(contentType);
                // Specifes How much amountof data we straming & trying to download
                response.setContentLength(contentLength);
                // Adding Content Disposition header so that it cud enable us to get OPEN/SAVE  after clicking on the link 
                response.setHeader("Content-Disposition","attachment;filename="+fileName+"\");
                // Initializing File Streaming Response via a Servlet
                output = new BufferedOutputStream(response.getOutputStream());
                // Placing each byte on to the stream after reading it from the file
                while ( contentLength-- > 0 ) {
                   output.write(input.read());
                 // Flushing the stream.         
                 output.flush();
              }catch(IOException e) {
                     System.err.println("Exception Occured:"+e.getMessage());
                 System.err.println("Exception Localized Message:"+e.getLocalizedMessage());
              } finally {
                   // Closing the INPUT stream 
                   if (input != null) {
                       try {
                          input.close();
                      } catch (IOException ie) {
                          System.err.println("Exception Occured:"+e.getMessage());
                             System.err.println("Exception Localized Message:"+e.getLocalizedMessage());                      
                   // Closing the OUTPUT stream 
                   if (output != null) {
                       try {
                          output.close();
                      } catch (IOException ie) {
                          System.err.println("Exception Occured:"+e.getMessage());
                             System.err.println("Exception Localized Message:"+e.getLocalizedMessage());                      
           }else{
             response.sendRedirect("/errorPage.html");
      public void doPost(HttpServletRequest request,HttpServletResponse response) throws Exception{       
            processAction(request,response); 
      public void doGet(HttpServletRequest request,HttpServletResponse response) throws Exception{
            processAction(request,response); 
    }And if you are thinking of hiding filepath & all...
    Here is a hint for you...
    Try to maintain a properties file which has a key value pairs of that something like.
    112345678=C:\\uploadfile\\image1.jpg
    122142637=C:\\uploadfile\\image2.jpg
    or create a Database table which which an autogenerated primany key with some Id and holds the complete filePath.
    and in this case you would access the file something like the one below from your jsp
    <a href="FileServlet?fileId=112345678" title="112345678">Click Here to download Image1 JPEG File</a>
    <c:forEach var="fileId" items="${sessionScope.fileNames}">
       <a href="FileServlet?fileId=<c:uri value="${fileId}"/>" title="<c:out value="${fileId}"/>">Click Here to download</a>
    </c:forEach>
    -------------------------------------------------------------------------and in the fileServlet you might have to change the below part to
    // getting fileName which user is requesting for
           String fileName = request.getParameter("fileName").replace('\\','/');to something like
    // getting fileName which user is requesting for
           String fileId = request.getParameter("fileId");
       /*Querying the database or reading the Properties file to findout the correspoding filePath associated with the fileId something like*/
        String fileName = ResourceDelegate.getInstance().getFile("fileId").replace('\\','/');
    NOTE:* The idea is similar to what my fellow poster is trying to explain you in all his posts.
    Hope that might help :)
    REGARDS,
    RaHuL

  • Can any body give me code for file download in jsp

    Hi all,
    I have done file uploading to a particular dir C;\uploadfiles, and store the name of the file with other information in a table. Now I want to download that file of any format from that dir using jsp or servlet.
    Can anybody please help me with some code.
    Thanks and Regards
    Rajib

    This seems more like a job to a servlet
    public String getContentType(){
      this should return the cntent yupe of the file
      that shoule be downloaded
      if unknown use something like binary/data
    public byte[] getFileData(){
    This should return the data of the file as a byte array
    public void doGet(......................){  // or doPost
       res.setCotentType(getContentType());
       OutputStream os = res.getOutputStream();
       os.write(getFileData());
       os.close();
    }Above is the most simplest way to do it
    and havent been tested you might need changes based on your program design

  • Dyanmic csv file downloading with out writing a copy to server

    Hi,
    Here is my problem, any help most appriciated..
    I want to download dynamically created CSV file from the weblogic server, using jsp/servlet communication.
    I developed a servlet for this and i called that servlet from my jsp page, when user clicks on download button, my servlet works fine, but it writes a copy of CSV file into c:\bea\wlserver6.0 of the server, My intention is just it's has to dowload file to the client system, with out writing a copy in the server.
    Here is my code snnipits..
    public void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException {
    HttpSession session = req.getSession(true);
    try {
    resultMessageLastBalance = mtdRetrieveLastBalance(req);
    rsTrxnDetailLastBalance = resultMessageLastBalance.getRecordSet("lasttentrxn");
    } catch (Exception e) {
    e.printStackTrace();
    e.getMessage();
    File csvFile;
    FileOutputStream file;
    //codes to generate a file in local server for downloading
    Calendar calendar = Calendar.getInstance();
    String strFileName = Integer.toString(calendar.get(Calendar.YEAR))+Integer.toString(calendar.get(Calendar.MONTH))+Integer.toString(calendar.get(Calendar.DATE))+Integer.toString(calendar.get(Calendar.HOUR))+Integer.toString(calendar.get(Calendar.MINUTE))+Integer.toString(calendar.get(Calendar.SECOND))+Integer.toString(calendar.get(Calendar.MILLISECOND));
    try {
    strFileName = DeformatAcctNo(req.getParameter("acct_trxn__acctselected")) + strFileName + ".csv";
    } catch (Exception e) {}
    calendar = null;
    csvFile = new File(strFileName);
    if (!csvFile.exists()) {
    csvFile.createNewFile();
    file = new FileOutputStream(csvFile);
    res.setContentType("application/download");
    res.setHeader("Content-Disposition","attachment;filename=" + strFileName);
    javax.servlet.ServletOutputStream servletoutputstream1 = res.getOutputStream();
    String s = strFileName;
    dumpFile(s, servletoutputstream1);
    servletoutputstream1.flush();
    servletoutputstream1.close();

    Hi,
    Thanx a lot for ur solution..it's helful for me to send data with a file format,but i need t send data in csv file foramt.
    hav a look at my complete servelt and try to suggesst some thing..
    In this case csv file is creating in c:\bea\wlserver directory.my intensions sre just it jas to download to client, no copy in the server.
    public class AcctStmtD2 extends HttpServlet {
         public void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException {
         //variables for retrieving last balance
         Message resultMessageLastBalance = null;
         RecordSet rsTrxnDetailLastBalance = null;
         double dblDebitTotal = 0.00;
         double dblCreditTotal = 0.00;
         HttpSession session = req.getSession(true);
    Enumeration ea = session.getAttributeNames();
         while(ea.hasMoreElements()) {
         Object name = ea.nextElement();
         System.out.println("values = " + session.getAttribute((String)name));
         try {
         resultMessageLastBalance = mtdRetrieveLastBalance(req);
         rsTrxnDetailLastBalance = resultMessageLastBalance.getRecordSet("formonthtrxn");
         } catch (Exception e) {
         e.printStackTrace();
         e.getMessage();
         File csvFile;
         FileOutputStream file;
         //codes to generate a file in local server for downloading
         Calendar calendar = Calendar.getInstance();
         String strFileName = Integer.toString(calendar.get(Calendar.YEAR))+Integer.toString(calendar.get(Calendar.MONTH))+Integer.toString(calendar.get(Calendar.DATE))+Integer.toString(calendar.get(Calendar.HOUR))+Integer.toString(calendar.get(Calendar.MINUTE))+Integer.toString(calendar.get(Calendar.SECOND))+Integer.toString(calendar.get(Calendar.MILLISECOND));
         try {
              strFileName = DeformatAcctNo(req.getParameter("acct_stmt__acctselected")) + strFileName + ".csv";
         } catch (Exception e) {}
         calendar = null;
         csvFile = new File(strFileName);
         if (!csvFile.exists()) {
         csvFile.createNewFile();
         file = new FileOutputStream(csvFile);
         if (rsTrxnDetailLastBalance.getTotalRowCount() >= 1) {
         String strLastBal = "";
         String strCurrCd = "";
              try {
                        rsTrxnDetailLastBalance.moveLast();
         strLastBal = rsTrxnDetailLastBalance.getValue("bal");
                        rsTrxnDetailLastBalance.moveFirst();
         strCurrCd = "(" + GetCurrCdFromSession(session, req.getParameter("acct_stmt__acctselected")) + ")";
         file.write(("\""+req.getParameter("acct_stmt__acctselected")+"\"").getBytes());
         file.write(',');
         file.write(',');
         file.write(',');
         file.write(',');
         file.write(',');
         file.write(("\""+"Last Balance "+strCurrCd+" = "+strLastBal+"\"").getBytes());
         file.write('\n');
         file.write(("\""+"Date"+"\"").getBytes());
         file.write(',');
         file.write(("\""+"Slip No"+"\"").getBytes());
         file.write(',');
         file.write(("\""+"Description"+"\"").getBytes());
         file.write(',');
         file.write(("\""+"Debit"+" "+strCurrCd+"\"").getBytes());
         file.write(',');
         file.write(("\""+"Credit"+" "+strCurrCd+"\"").getBytes());
         file.write(',');
         file.write(("\""+"Balance"+" "+strCurrCd+"\"").getBytes());
         file.write('\n');
         } catch (Exception e) {System.out.println("!");}
    while(rsTrxnDetailLastBalance.moveNext()) {
         try {
         file.write(("\""+rsTrxnDetailLastBalance.getValue("txn_dt").substring(0,12)+"\"").getBytes());
    file.write(',');
         file.write(("\""+rsTrxnDetailLastBalance.getValue("slip_no")+"\"").getBytes());
         file.write(',');
         file.write(("\""+rsTrxnDetailLastBalance.getValue("dscp")+"\"").getBytes());
         file.write(',');
         file.write(("\""+rsTrxnDetailLastBalance.getValue("debit")+"\"").getBytes());
         file.write(',');
         file.write(("\""+rsTrxnDetailLastBalance.getValue("credit")+"\"").getBytes());
         file.write(',');
         file.write(("\""+rsTrxnDetailLastBalance.getValue("bal")+"\"").getBytes());
         file.write('\n');
         } catch(Exception e) {}
         try {
                             dblDebitTotal += Double.parseDouble(rsTrxnDetailLastBalance.getValue("debit"));
         } catch (Exception e) {
                             dblDebitTotal = 0;
         try {
                             dblCreditTotal += Double.parseDouble(rsTrxnDetailLastBalance.getValue("credit"));
         } catch (Exception e) {
                             dblCreditTotal = 0;
         file.write(',');
         file.write(',');
         file.write(("\""+"Total"+"\"").getBytes());
         file.write(',');
         file.write(("\""+Double.toString(dblDebitTotal)+"\"").getBytes());
         file.write(',');
         file.write(("\""+Double.toString(dblCreditTotal)+"\"").getBytes());
         } else {
         file.write(("\""+"No Record Found!"+"\"").getBytes());
         file.close();
         res.setContentType("application/download");
         res.setHeader("Content-Disposition","attachment;filename=" + strFileName);
                   javax.servlet.ServletOutputStream servletoutputstream1 = res.getOutputStream();
         String s = strFileName;
         dumpFile(s, servletoutputstream1);
         servletoutputstream1.flush();
         servletoutputstream1.close();
    public void doPost(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException {
              doGet(req, res);
    private void dumpFile(String s, OutputStream outputstream) {
    byte abyte0[] = new byte[4096];
         boolean flag = true;
         try {
         FileInputStream fileinputstream = new FileInputStream(s);
         int i;
         while((i = fileinputstream.read(abyte0)) != -1)
         outputstream.write(abyte0, 0, i);
         fileinputstream.close();
         } catch(Exception e) {}
    private Message mtdRetrieveLastBalance(HttpServletRequest req) throws Exception {
         Message msgMessage = new Message();
         DAC.Parser.RecordSet objFund_Tx = msgMessage.createRecordSet("formonthtrxn");
         //Set the header fields for the record
         objFund_Tx.addHeaderFields("acctselected","String");
         objFund_Tx.addHeaderFields("formonth","String");
         objFund_Tx.addHeaderFields("foryear","String");
         //Add a new row to the recordset
         objFund_Tx.addRow();
         msgMessage.setData("recordnm", "string", "formonthtrxn");
         //Set the required fields into the recordset
         objFund_Tx.setValue("acctselected", DeformatAcctNo(req.getParameter("acct_stmt__acctselected")));
         objFund_Tx.setValue("formonth", req.getParameter("acct_stmt__formonth"));
         objFund_Tx.setValue("foryear", req.getParameter("acct_stmt__foryear"));
         objFund_Tx.setStatus("select");
         System.out.println("JSP IN :"+msgMessage);
         msgMessage = mtdOpenConnection(msgMessage);
         System.out.println("JSP OUT :"+msgMessage);
         return msgMessage;
    private Message mtdOpenConnection(Message objMessage) throws Exception {
    java.util.Hashtable ht = new java.util.Hashtable();
         ht.put(javax.naming.Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
         ht.put(javax.naming.Context.PROVIDER_URL, "t3://localhost:7001");
    javax.naming.InitialContext ic = new javax.naming.InitialContext(ht);
    DAC.BusinessObjects.RIB.Account.AccountHome pmHome = (DAC.BusinessObjects.RIB.Account.AccountHome)PortableRemoteObject.narrow(ic.lookup("AccountEJB"),Class.forName("DAC.BusinessObjects.RIB.Account.AccountHome"));
         DAC.BusinessObjects.RIB.Account.Account pmObj = (DAC.BusinessObjects.RIB.Account.Account)PortableRemoteObject.narrow(pmHome.create(),Class.forName("DAC.BusinessObjects.RIB.Account.Account"));
         return pmObj.mtdRetrieveTrxForMonth(objMessage);
    private String convertSingleDigitMonthDayToDouble(String param) throws Exception {
         if (param.length() > 1) {
         return param;
         } else {
         return "0" + param;
         //remove dashes and product name and branch code from string
         private String DeformatAcctNo(String strAcctNo) throws Exception {
              strAcctNo.trim();
              return strAcctNo.substring(0,3)+strAcctNo.substring(4,6)+strAcctNo.substring(7,12)+strAcctNo.substring(13,14);
         private     String GetCurrCdFromSession(HttpSession session, String acct_no) throws Exception {
              String strAcctDetail = "";
              String strCurrCd = "";
              Vector vList = (Vector)session.getAttribute("accountlist");
              for (int i = 0; i < vList.size(); i++) {
                   strAcctDetail = (String)vList.get(i);
                   if ((strAcctDetail.substring(0, acct_no.length()).equals(acct_no))) {
                        strCurrCd = strAcctDetail.substring(strAcctDetail.indexOf(":") + 1, (strAcctDetail.indexOf(":") + 4));
                        break;
              vList = null;
              strAcctDetail = null;
              return strCurrCd;
    }

  • File Download with Servlet

    In my application i have to download a file with the help of servlet.
    Everything works fine except the case where i want to open the dialog box or just let that file open in the browser.
    For e.g. when i am trying to download an excel file and i want to have a dialog box open for save, it doesnt does that but automatically open the file in browser.
    But for the above case if i dont set the "ContentType" as "application/vnd.ms-excel" then it works fine like it will open a dialog box if in the header the value of "Content-Disposition" has "attachment;" and will open it if it has "inline;"
    Could you guide me to some good study material on what can be issues or the fundamentals of setting the "fileName with extension", what if i dont set "ContentType" and what is the difference between "Attachment" and "Inline"
    Thanks

    actually youre using the trick most ppl use.. force the content type to be something else than the ms-excel..
    the content type is ment to be a guide to the browser on how to interprete the content..
    if it doesnt it will prompt you to download i.e. show the file save dialog..

  • File download using jsp

    I am trying to download a file from the server using jsp but it always shows the file in the browser.I want a Save/Open dialog box to allow the user to save this file in the local system. any feedback is welcome.
    thanks in advance
    vinod

    Basically out frame work is in struts.........
    In struts for file down load I wrote the code as
    String fileName = <file name>;
    String filePath = <file path>;
    String fileType = fileName.substring(dotIndex+1,fileName.length());
    ServletOutputStream out = httpservletresponse.getOutputStream();
    if (fileType.trim().equalsIgnoreCase("doc"))
    httpservletresponse.setContentType( "application/msword" );
    else if (fileType.trim().equalsIgnoreCase("xls"))
    httpservletresponse.setContentType( "application/vnd.ms-excel" );
    else if (fileType.trim().equalsIgnoreCase("pdf"))
    httpservletresponse.setContentType( "application/pdf" );
    else if (fileType.trim().equalsIgnoreCase("ppt"))
    httpservletresponse.setContentType( "application/ppt" );
    else
    httpservletresponse.setContentType( "application/octet-stream" );
    httpservletresponse.setHeader("Content-disposition", "attachment; filename=" +actualName );
    BufferedInputStream bis = new BufferedInputStream(new FileInputStream(filePath));
    BufferedOutputStream bos = new BufferedOutputStream(out);
    byte[] buff = new byte[2048];
    int bytesRead;
    while(-1 != (bytesRead = bis.read(buff, 0, buff.length)))
    bos.write(buff, 0, bytesRead);
    I hav written this in seperate function which returns boolean true If this works correctly otherwise fase.
    If it is 'true ' I am forwarding it to 'success.jsp' else'fail.jsp'....................
    Now problem is It is not forwarding to any other pages and giving error as "Illegal state .can not forward.Response already committed."
    I think this error is coming becos of 'response.setHeader()' and using out object.........
    Please give me any solution for this problem.........Since I am strucked here.It is urgent for me to do...................................
    I don't mind If u giv any alteernative code for this..............
    Thanx in advance..................
    Plz. respond quickly...................

  • Excel file download in jsp

    Hi,
    Is it possible to download excel file on the server on a JSP page. Kindly advice.
    Thanks in advance.

    yes...
    What is the scenario....
    is it..
    1. You have a XLS on server...alredy created..
    2. Now you need a link on JSP page....that is linked to this EXS file...
    3. User acess your web application and click on link....
    4. A popup comes up....and user selects either to save or download the file....
    Is this your scenario....
    If not then specify steps you are looking for....and you face issue in which step....
    Edited by: Saurabh Agarwal on Jul 6, 2011 12:21 PM

Maybe you are looking for

  • Plug-in/Folder Actions no work, Drop App works

    I've been trying to get the automator actions from here (http://www.apple.com/pro/techniques/automator/) to work. I save the plug-in and activate it as a folder action script. When a new item is added the the folder the contains the action script, th

  • How do you publish an Android version of your app?

    Hi, I was wondering if someone could help me. I want to do an Android version of my app to publish in DPS. I was just wondering if there was a step by step guide? I know I have to create alternate layouts, but do I save them in other folder with the

  • Quantity invoiced greater than goods receipt quantity

    Hi guru's                I am getting an error " Quantity invoiced greater than goods receipt quantity" while posting invoice in MIRO for excise duty clearing for Import PO. Actually Total Quantity is 9900 kg. Out of which for 3300 kg, Excise duty is

  • MS Sql error in production server: DBIF_REPO_SQL_ERROR

    Hi experts, I am getting this error in my production server. Environment : OS - Windows 2008, Database: MSsql 2005 sp2, ECC6.0 when the job SAP_COLLECTOR_FOR_PERFMONITOR executes the dump occurs with the following error. DBIF_REPO_SQL_ERROR, SQL erro

  • SAP SD Process Hierarchy

    Hi all, Can any one please paste here SD Process Hierarchy as in tcode SE43 as my IDES is not working. Please respond. Best Regards, AI.