Hi, That works, but now brings a me to the next step.
My Web Server (Tomcat) and my App Server (JBoss) are on different machines. Question: Is there a way I can make an InputStream implement Serializable? This is because I would like to send the file (100MB+) as a stream. Regards, Daniel -----Original Message----- From: A mailing list for discussion about Sun Microsystem's Java Servlet API Technology. [mailto:[EMAIL PROTECTED]]On Behalf Of Vikramjit Singh Sent: Monday, June 24, 2002 12:40 PM To: [EMAIL PROTECTED] Subject: Re: File Upload/Download Issues hi for downloading you can do this response.setContentType("APPLICATION/OCTET-STREAM"); response.setHeader("Content-Disposition", "attachment; filename=\"" + filename + "\""); where filename is say filename="xyz.xml". Regards, Vikramjit Singh, Systems Engineer, GTL Ltd. Ph. 7612929-1031 -----Original Message----- From: Daniel J. D'Cotta [mailto:[EMAIL PROTECTED]] Sent: Sunday, June 23, 2002 7:38 PM To: [EMAIL PROTECTED] Subject: Re: File Upload/Download Issues File Download: ~~~~~~~~~~~~~~ >response.setHeader("content-type","application/vnd.ms-excel") I have 2 questions: 1) I am trying to figure which MIME type can be used for all file types (.xml, .html, .dat, etc). Is there any? 2) Also is there a way to force downloading of all file types, instead of letting the web browser open them. PS: Joe, thanks for the information, I really appreciate the help. Regards, Daniel -----Original Message----- From: Joe Germuska [mailto:[EMAIL PROTECTED]] Sent: Wednesday, June 19, 2002 9:56 PM To: Daniel J. D'Cotta Subject: RE: File Upload/Download Issues At 10:48 AM +0800 2002/06/19, Daniel J. D'Cotta wrote: >Joe, > >Thanks... but I have a question. (Posting to you direct because it is not >Struts related) > >>>3. Finally, How do you let users download a file with Struts? The file >>>cannot be outside WEB-INF. >> >>You'd need to write directly to the HttpServletResponse object and >>return a null ActionMapping from the perform/execute method of your >>Action. You're responsible for setting all the headers (content >>type, etc). But this isn't hard to do -- it's just not something >>that Struts helps you do. > >How would I do this? well, ServletResponse (the superclass of HttpServletResponse) has two methods, "getOutputStream()" and "getWriter()", each of which return classes to which you can write data (getOutputStream returns a ServletOutputStream, and getWriter returns a java.io.PrintWriter). So, once your action decided that everything was OK, first, it would do some setup on the response object -- * set a status code: if everything is OK, you'd call "response.setStatus(HttpServletResponse.SC_OK)" The full list of status codes is in the api doc for HttpServletResponse. * set a MIME type -- for example, for an Excel spreadsheet: 'setHeader("content-type","application/vnd.ms-excel");' The official list of registered MIME types is at <http://www.isi.edu/in-notes/iana/assignments/media-types/media-types>, although it may be easier to just look at your own web browsers "helper applications" settings. * get a handle on your content -- if it's in "WEB-INF", the easiest way is to use ServletContext.getResourceAsStream("/WEB-INF/path/to/file"), although I believe WebLogic 6 has problems with this (I know Weblogic 6 can't load JSPs from WEB-INF, but not sure about regular files) * copy from your content InputStream to the ServletOutputStream (or wrap them in reader/writer classes, etc -- standard java.io stuff here). * close the streams and you should be done. It's been a while since I've spit content directly out at the response -- obviously it's something you only want to do when you need to. There may be other HTTP headers that you need to set, at least in some cases, etc. I like the O'Reilly "Webmaster in a Nutshell" for a quick reference to HTTP headers and the details of that protocol, although I'm sure you can find comparable material online. Hope that helps. Joe -- -- * Joe Germuska { [EMAIL PROTECTED] } "It's pitiful, sometimes, if they've got it bad. Their eyes get glazed, they go white, their hands tremble.... As I watch them I often feel that a dope peddler is a gentleman compared with the man who sells records." --Sam Goody, 1956 tune in posse radio: <http://www.live365.com/stations/289268> ___________________________________________________________________________ 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 ___________________________________________________________________________ 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 ___________________________________________________________________________ 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
