0

Hello there,

Im new in JSP
Just want to ask, how I can force web browser to popup download box to download the .prn file that was generated by server?

Assume that

fileName.getAbsolutePath()

is the variable that hold the path for .prn file

*** Im using pure JSP

2
Contributors
2
Replies
3
Views
7 Years
Discussion Span
Last Post by skycrew
0

skycrew>that was generated by server?
No

Server prepare a response object - A response object consists headers and body. Headers are instructions for the browser and body contains the data to be render by the browser.

For downloading a file:

<%@ page language="java" import="java.io.*"%>

<%!
    void download(String filename,PageContext out) throws Exception {

       ServletContext sc=getServletContext();
       File file=new File(sc.getReadPath("/files");  // assume that your .prn is located under files folder.
       String path="";
       path=sc.getRealPath("files\\" + filename);
       InputStream fr=new FileInputStream(path);
       byte []b=new byte[fr.available()];
       fr.read(b,0,b.length);
       fs.close();
       
        HttpServletResponse resp=(HttpServletResponse)out.getResponse();

       resp.resetBuffer();
       resp.setHeader("Content-Type","application/octate-stream");
       resp.setHeader("Content-Length",String.valueOf(b.length));
       resp.setHeader("Content-Disposition","attachment; filename=" + filename);
      resp.getOutputStream().write(b,0,b.length);
      resp.flushBuffer();
   }
%>

<%
// call to a download() method
download("sample.prn");
%>
0

thank you very much adatapost for the strong explanation and code.

will trying this code.

actually I use the .prn file to print a bar code using bar code printer.

before this, the barcode printer is on client side and the system run locally.

now when the system run on network, client cannot print the barcode because the barcode printer is on client side.

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.