8-O

It's simple - need add to web.xml next elements:

<web-app>
...
 <servlet>
   <servlet-name>documents</servlet-name>
   <servlet-class>asoft.web.Doc_view</servlet-class>
   <load-on-startup>1</load-on-startup>
 </servlet>
...


 <servlet-mapping>
   <servlet-name>documents</servlet-name>
   <url-pattern>/documents/*</url-pattern>
 </servlet-mapping>
...
</web-app>




Raj Saini wrote:

Hi Vladimir,

My code is inside a ActionListener of CommandLink component of JSF and
that may be the reason it is not working. I am not able to figure out
how to forward control to servlet from ActionListener. Can you please
tell me how do you forward control to servlet from your JSF page?

Regards,

Raj

On 4/10/06, Vladimir Figurov <[EMAIL PROTECTED]> wrote:
Hi Raj,

I look your code. I think, it does not work because you use not pure
сервлет for loading. I do not see heading of your class - similar that
it Faces PageBean?


I use a combination JSF pages + simple pure Servlet, listening part URL
for download:



public class Doc_view extends HttpServlet {

 public void doGet(HttpServletRequest request, HttpServletResponse
response)
         throws ServletException, IOException {
   String uri = request.getPathInfo();
   int pdoc_id=Integer.parseInt(request.getParameter("doc_id"));
   try {
       response.setContentType("application/x-download");
       response.setHeader("content-disposition", "attachment;
name=\""+downloadFileName+"\"; filename=\""+downloadFileName+"\"");
     byte[] data = .... ;
     response.setContentLength(data.length);
     response.getOutputStream().write(data);
   } catch (Exception e) {...    }
 }










Raj Saini wrote:

Hi Vladmir,

I tried your suggestion. It did not work for me. I am using apche my
faces JSF bridge. Does it work for you form a JSF based porlet?

Below the the code snipt of processAction method of command link
action listener. Can you see if I am missing something?


============================

     FacesContext facesContext = FacesContext.getCurrentInstance();
             String path =
facesContext.getExternalContext().getInitParameter("uploadDirectoryLocation");

             Map map = 
facesContext.getExternalContext().getRequestParameterMap();
             String fileName = (String) map.get("fileName");
             System.out.println("File URI: " + path+fileName);

             File file = new File(path + fileName);
             long fileSize =file.length();

             //Set the HTTP headers for foce download the file
             HttpServletResponse response =
(HttpServletResponse)FacesContext.getCurrentInstance().getExternalContext().getResponse();
             response.setContentType("application/x-download");
             response.setHeader("content-disposition",
"attachment;name=\""+fileName+"\";filename=\""+fileName+"\"");
             response.setContentLength((int)fileSize);
==========================================================

Regards,

Raj
On 4/10/06, Vladimir Figurov <[EMAIL PROTECTED]> wrote:


Hi,
try next:

response.setContentType("application/x-download");
response.setHeader(
"content-disposition",
"attachment;name=\""+downloadFileName+"\";filename=\""+downloadFileName+"\"");

for me - it's worked exellent in IE, Opera and Mozilla




Raj Saini wrote:



Hi David,

I tried it. It does not work.

Thanks,

Raj

On 4/9/06, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:




Hi,

try this code:

response.setContentType("binary/download");
response.setHeader("Content-disposition","attachment; filename=xxx.xxx");

before dump the content.


Best Regards,

David


-----Original Message-----
From: Raj Saini [mailto:[EMAIL PROTECTED]
Sent: Saturday, April 08, 2006 11:06 PM
To: Jetspeed Users List
Subject: Force downloading a file in JSF portlet

Hi,


I am building JSF based portlet for downloading a file using MyFaces JSF
bridge.
I do the following to make the file force download:

1) Set "content-disposition" header to contain the correct filename
2) Set "content-type" header to "application/octet-stream" or something more
accurate if the information is present in attachment metadata
3) Dump the content using a ServletOutputStream

When I click on the link to download the file, instead of throwing a dialog
box for saving/opening the file, browser dumps the the binary contents on
page. However, this works fine as standalone application.

Is there something extra I need to do to force download file in Jetspeed? Am
I missing something here?

Regards,

Raj




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]






---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]






--
Vladimir


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




--
Vladimir


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




--
Vladimir


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to