One solution which is often mentioned to this question is to return a URL to
a servlet which knows how to generate the .jpg image as its response.  Set
the context type appropriately, and write the JPEG bytes to the output
stream.

Tim

> -----Original Message-----
> From: Mohsen Saboorian [mailto:[EMAIL PROTECTED]
> Sent: Monday, August 07, 2006 5:32 AM
> To: Tomcat Users List
> Subject: Re: Writing files accessible from a browser
> 
> You can use a servlet init param inside web.xml for avoiding hardcoded
> solutions.
> e.g.
> <context-param>
> <param-name>MY_PATH</param-name>
> <param-value>c:\my\path\to\imgs</param-value>
> </context-param>
> 
> 
> On 8/7/06, Romain Quilici <[EMAIL PROTECTED]> wrote:
> > Hi,
> > Hope I will be clear enough:
> >
> > One part of my web application receives encodes stream that it has to
> > convert to jpg images. When an image is written on the server, it
> > notifies a Servlet  which pushes the  name (or the url) of the newly
> > generated image inside client browser(thanks to pushlets  technology).
> > The Servlet can only push a String (Pushlets requirements).
> >
> > So my problem is where can I write the images, so they can be accessible
> > by a URL. One easy solution, the one I use for testing, is to hardcode
> > in my webapp the directory where the images are written.
> > For instance TOMCAT_HOME\webapps\frames\,
> > and in my jsp to have <img src="http://myserver/frames/name.jpg> where
> > name.jpg is pushed by the servlet when this image is generated.
> >
> > However, this solution is not satisfactory, indeed, if I deploy my
> > application in another place, I don't want people to edit my code to
> > change for suitable values. I admit I could use properties or a
> > configuration file to set these value(even if I am not sure it would
> > work in all configuration), anyway I would like to check if using the
> > servletcontext, or other solutions might be more appropriate.
> > As I said a solution with the temp directory would be perfect, if this
> > directory was accessible with a URL
> >
> > Hope it is clear
> > Regards
> > Li wrote:
> > > Hi,
> > >
> > > It is not advisable to make your webapp dir writable, can you tell me
> > > what exactly would you like to achieve so that I may get more info to
> > > help out ...
> > >
> > >
> > >
> > > On 8/7/06, Romain Quilici <[EMAIL PROTECTED]> wrote:
> > >> Hi,
> > >> thanks for the advice,
> > >> But I want to avoid harcoded links such as
> $APACHE_HOME\httpdocs\images
> > >> or <a href="http://yourdomain/images/1.jpg";> in my jsp.
> > >>
> > >> Indeed I don't want to modify these values if I decide Tomcat to run
> on
> > >> another port, or to install Tomcat in another directory or even OS.
> That
> > >> is why I am looking for an approach using
> > >> the webapp context, so I don't have to worry about the OS, or the
> port,
> > >> or whatever configuration.
> > >> Anyway thanks for your help
> > >> Regards
> > >> Romain
> > >>
> > >> Li wrote:
> > >> > Hi,
> > >> >
> > >> > Here are few steps of achieving it (just tested, and it works):
> > >> > 1. use FileOutputStream or any output streaming object to write a
> > >> > image file
> > >> >    into the directory
> > >> >   in Windows, the path string should look like:
> > >> > "c:\apache_home\httpdocs\images\1.jpg"
> > >> >   in unix/linux, the path should look like
> > >> > $APACHE_HOME\httpdocs\images\1.jpg"
> > >> >   (assume, you had defined APACHE_HOME, make sure the images folder
> > >> > is read/write
> > >> >   only for the user/group that runs tomcat
> > >> > 2. Make sure apache is on ...
> > >> > 3. in your jsp: use
> > >> >   e.g. <a href="http://yourdomain/images/1.jpg";>click to view</a>
> > >> >
> > >> >
> > >> > Wish it helps
> > >> >
> > >> > On 8/7/06, Romain Quilici <[EMAIL PROTECTED]> wrote:
> > >> >> Thanks for the answer,
> > >> >> this solution was part of my investigation, and was actually the
> > >> first
> > >> >> idea I had.
> > >> >> The problem with this approach is I don't know how to access the
> > >> >> /image_dir/ from within my web application.
> > >> >> Maybe using something like
> > >> >> String path = servletContext.getRealPath("/");
> > >> >> String imagePath = path+"../image_dir/"
> > >> >> and use the imagePath to create my images, then in my jsp
> > >> something like
> > >> >> <request.getContextPath()/../image_dir/image1.jpg>
> > >> >>
> > >> >> But I am not sure this approach works in all configurations,
> > >> >> particularly if my webapp is deployed inside a war.
> > >> >>
> > >> >> Thanks
> > >> >> Romain
> > >> >>
> > >> >> Li wrote:
> > >> >> > if you have apache server, you can write file to its home dir,
> and
> > >> >> > then use
> > >> >> > http://<youdomain>/<image_dir>/image_name.suffix to view.
> > >> >> >
> > >> >> > On 8/7/06, Romain Quilici <[EMAIL PROTECTED]> wrote:
> > >> >> >> Hi all,
> > >> >> >> I have been reading several messages about writing files inside
> > >> a web
> > >> >> >> application, but I found no answer regarding my problem.
> > >> >> >>
> > >> >> >> I need to write files on the file system that can be accessible
> > >> >> with a
> > >> >> >> browser(I write images).
> > >> >> >>
> > >> >> >> - The most reliable solution I found was to use the webapp's
> tmp
> > >> >> >> directory, unfortunately this directory is not accessible with
> > >> a URL.
> > >> >> >>
> > >> >> >> - Another solution would be to write these images under my
> webapp
> > >> >> >> root(or in another place under my webapp). But it seems that
> this
> > >> >> >> approach does not work with webapps deployed in a war file.
> > >> >> >> Indeed you cannot write inside wars like this.
> > >> >> >>
> > >> >> >> I don't want to rely on some hardcoded solutions. There is
> > >> still the
> > >> >> >> possibility to pass the absolute path to the directory (let's
> say
> > >> >> >> TOMCAT_HOME/webapps/myimages/) and later, use inside my JSP
> > >> >> >> <request.getContextPath()/../myimages/image1.jpg>, but I think
> > >> this
> > >> >> >> solution won't work in many configurations
> > >> >> >>
> > >> >> >> Thanks a lot for your help
> > >> >> >> Regards
> > >> >> >> Romain
> > >> >> >>
> > >> >> >>
> > >> >> >>
> > >> >> >>
> > >> >> >>
> > >> ---------------------------------------------------------------------
> > >> >> >> To start a new topic, e-mail: users@tomcat.apache.org
> > >> >> >> To unsubscribe, e-mail: [EMAIL PROTECTED]
> > >> >> >> For additional commands, e-mail: [EMAIL PROTECTED]
> > >> >> >>
> > >> >> >>
> > >> >> >
> > >> >> >
> > >> >>
> > >> >>
> > >> >>
> > >> >> ------------------------------------------------------------------
> ---
> > >> >> To start a new topic, e-mail: users@tomcat.apache.org
> > >> >> To unsubscribe, e-mail: [EMAIL PROTECTED]
> > >> >> For additional commands, e-mail: [EMAIL PROTECTED]
> > >> >>
> > >> >>
> > >> >
> > >> >
> > >>
> > >>
> > >>
> > >> ---------------------------------------------------------------------
> > >> To start a new topic, e-mail: users@tomcat.apache.org
> > >> To unsubscribe, e-mail: [EMAIL PROTECTED]
> > >> For additional commands, e-mail: [EMAIL PROTECTED]
> > >>
> > >>
> > >
> > >
> >
> >
> >
> > ---------------------------------------------------------------------
> > To start a new topic, e-mail: users@tomcat.apache.org
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
> 
> ---------------------------------------------------------------------
> To start a new topic, e-mail: users@tomcat.apache.org
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to