File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
The moose likes JSP and the fly likes download files from UNC using jsp Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » JSP
Bookmark "download files from UNC using jsp" Watch "download files from UNC using jsp" New topic
Author

download files from UNC using jsp

Martin Lira
Ranch Hand

Joined: May 26, 2004
Posts: 97
Guys,
I have a web app that has view from JSPs. I need to create a JSP page to force the download of different types of files - doc, xls, pdf etc and not open it by default in the browser (IE/Firefox). The other problem is the file path is not on my webserver document directory but on a UNC drive (universal naming convention) eg. \\server\folder\file.xls

Please give me suggestions how I can download this using jsp.

Thanks,
~ML
Ben Souther
Sheriff

Joined: Dec 11, 2004
Posts: 13410

You'll need to stream the files (which is just about impossible from a JSP) after setting the content disposition to be an attachment.

I have a servlet that streams files at:
http://simple.souther.us

Look for SimpleStream.

It sets the Content-Disposition header too, so you'll see how to do that.


Java API J2EE API Servlet Spec JSP Spec How to ask a question... Simple Servlet Examples jsonf
Ben Souther
Sheriff

Joined: Dec 11, 2004
Posts: 13410

BTW: It should be no different from a UNC path than from a local path as long as the user that Tomcat is running under has sufficient permissions.
Martin Lira
Ranch Hand

Joined: May 26, 2004
Posts: 97
Thanks Ben, I checked the SimpleStream class and looks great, just what I needed. But I did not get
(which is just about impossible from a JSP)

~Martin
Ben Souther
Sheriff

Joined: Dec 11, 2004
Posts: 13410

Streaming from a JSP is tough because the body itself (everthing outside the <% %> tags) is written to the out stream by the writer.

For that reason, it's difficult, at best, to start and stop a stream without generating an illegal state exception.

Make life easier, do it from a servlet..
[ February 11, 2005: Message edited by: Ben Souther ]
Martin Lira
Ranch Hand

Joined: May 26, 2004
Posts: 97
Ben,
Have a few problems:
1. The servlet doesnot seem to get the InputStream of the file on my UNC.
But if i do this it works.

2. I see my pc cpu usage goes to 100% after a couple of requests to the servlet.
Ben Souther
Sheriff

Joined: Dec 11, 2004
Posts: 13410

Hmm context.getResourceAsStream is probably not the best way to get a file that's outside of the scope of the app. The example was for reading files/resources from within the app or war file.
Using FileInputStream was a good idea.

Why are you creating a printwriter variable?
Are you still using response.getOuputStream to stream the file down to the browser?

How big are the files?
[ February 11, 2005: Message edited by: Ben Souther ]
Martin Lira
Ranch Hand

Joined: May 26, 2004
Posts: 97
I was using the PrintWriter and looks like that was the cause of the performance issue. I replaced it with

and it has better performance. Do you have any other alternatives better than getOutPutStream ?
My files are in the range if 1 to 10 MB
~ML
[ February 11, 2005: Message edited by: Martin Lira ]
Ben Souther
Sheriff

Joined: Dec 11, 2004
Posts: 13410

No, OutputStream is perfect for that.
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: download files from UNC using jsp
 
Similar Threads
Does File Exist
Servlet works on WebSphere but not on Tomcat
Download files only using JSP
Download a File from server to client machine - web application
Upload file