hi,
Only objects that support the java.io.Serializable interface can be written
to streams.
If you want to write, you can use OutputStream.
We implement the interface Serializable for objects which have to be taken
into stream. :-).
I think what you need to use is ObjectInputStream for reading or
ObjectOutputStream for writing which implements the Serializable interface.
Here is a code snippet take from java docs of ObjectOutputStream.
For example to write an object that can be read by the example in
ObjectInputStream:
FileOutputStream ostream = new FileOutputStream("t.tmp");
ObjectOutputStream p = new ObjectOutputStream(ostream);
p.writeInt(12345);
p.writeObject("Today");
p.writeObject(new Date());
p.flush();
ostream.close();
Regards,
Vikramjit Singh,
Systems Engineer,
GTL Ltd.
Ph. 7612929-1031
-----Original Message-----
From: Daniel J. D'Cotta [mailto:[EMAIL PROTECTED]]
Sent: Monday, June 24, 2002 8:18 PM
To: [EMAIL PROTECTED]
Subject: Re: File Upload/Download Issues
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
___________________________________________________________________________
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