Fetching images for users: where to put them?

43 views
Skip to first unread message

Sam W

unread,
Apr 2, 2012, 9:21:06 PM4/2/12
to Google Web Toolkit
Hello,

I haven't been able to figure this out after spending 3 hours on
Google.

I can fetch an image, but I don't know where to put them.
If I just use "new File("image.jpg")", it will end up in my tomcat
bin/ folder.

Some sugggests to use getServletContext().getRealPath("/"); but it
would block forever at "getServletContext", I don't know why.

What should I do so it will be part of the war, thus clients can
access it via "http://path.to/appname/images/someimage.jpg"?

What is the best practice on this?

Thank you so much.
Sam

Sam W

unread,
Apr 4, 2012, 1:59:23 PM4/4/12
to google-we...@googlegroups.com
Turns out getServletContext returns null.

I am using my own tomcat server, so I'm fine with writing files. Except I haven't been able to figure out a proper way to get the path.

Currently I use "private static String uglyHardcodedPath = "../webapps/myproject/"", the prepend this to all my filepaths...

Thanks everyone

Matias Costa

unread,
Apr 4, 2012, 2:35:59 PM4/4/12
to google-we...@googlegroups.com
In web.xml:

<servlet>
    <servlet-name>imageReceiver</servlet-name>
    <servlet-class>xxx.ImageReceiver</servlet-class>
    
    <init-param>
        <param-name>imagePath</param-name>
        <param-value>/the/place</param-value><!-- or C:\the\place -->
    </init-param>
</servlet>

And in the servlet:

public void init(ServletConfig servletConfig) throws ServletException{
    imagePath = servletConfig.getInitParameter("imagePath");
    if (!imagePath.endsWith(File.separator)) imagePath += File.separator
    try {
        File imageFolder = new File(imagePath);
        if (!File.exists()) Util.mkdirRecursive(imagePath);
    } catch ... whatever you want to do if something fails
  }

Sam W

unread,
Apr 6, 2012, 7:17:32 PM4/6/12
to google-we...@googlegroups.com
Thanks for your help!

Seems that there isn't a general solution to this...

(Nice tip on checking exist(), I pulled my hair out a few times when I forgot to create the folders!)
Reply all
Reply to author
Forward
0 new messages