This week's giveaway is in the Android forum.
We're giving away four copies of Android Security Essentials Live Lessons and have Godfrey Nolan on-line!
See this thread for details.
The moose likes JSF and the fly likes File Download problem using icefaces Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Android Security Essentials Live Lessons this week in the Android forum!
JavaRanch » Java Forums » Java » JSF
Bookmark "File Download problem using icefaces" Watch "File Download problem using icefaces" New topic
Author

File Download problem using icefaces

Mary Cole
Ranch Hand

Joined: Dec 02, 2000
Posts: 362
Hi,
I am using icefaces with liferay and am trying to download a file( it should open up the download dialogue box) from DB using the attached code. I have a command link on the webpage and currently if I click on that link, the method gets called, the inputstream is not null, but on the browser nothing happens.





Am I missing something? please help
pc pcqsajhd
Greenhorn

Joined: Jul 24, 2012
Posts: 1
I think this might be a bit late but...

You need to tell icefaces to use the standard renderer on the page by doing the following



see the documentation here:

http://wiki.icesoft.org/display/ICE/config
simone santos
Greenhorn

Joined: May 20, 2013
Posts: 4
Hi
I am using icefaces 1.8 with liferay 5.2.3 and am trying to download a file, but the download no performs, no show error and no start download, no
Please can someone help me does nothing
x is list of data, I have on datatable that the user will select the file for download can be all ou one file

public void download() {

List<File> files = new ArrayList<File>();
for (Dados dado : x) {
if (dado.isMarcador()) {
File file = new File(dado.getCaminho());
if (file.exists()) {
files.add(file);
}
}
}
if (!files.isEmpty()) {
System.out.println(files);
download1(files);
}
}



private static final int DEFAULT_BUFFER_SIZE = 10240; // 10KB.

private void download1(List<File> files) {


PortletResponse portletResponse = (PortletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
HttpServletResponse response = PortalUtil.getHttpServletResponse(portletResponse);

response.setContentType("application/zip");
response.setHeader("Content-Disposition", "attachment; filename=\"allfiles.zip\"");
ZipOutputStream output = null;
byte[] buffer = new byte[DEFAULT_BUFFER_SIZE];

try {
output = new ZipOutputStream(new BufferedOutputStream(response.getOutputStream(), DEFAULT_BUFFER_SIZE));

for (File file : files) {
InputStream input = new FileInputStream(file);
System.out.println(file);
try {
input = new BufferedInputStream(input, DEFAULT_BUFFER_SIZE);
output.putNextEntry(new ZipEntry(file.getName()));
for (int length = 0; (length = input.read(buffer)) > 0;) {
output.write(buffer, 0, length);
// System.out.println("wrote: "+length);
}
output.closeEntry();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (input != null) {
try {
input.close();
} catch (IOException logOrIgnore) { /*
*
*/ }
}
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (output != null) {
try {
System.out.println("fechou");
output.flush();
output.close();
FacesContext.getCurrentInstance().responseComplete();
} catch (IOException logOrIgnore) { /*
*
*/ }
}
}
}

<!-- <h:commandButton value="Download Selected" action="#{selectt.download}" rendered="#{selectt.displayFor}"/>



Please help me
thank you
Tim Holloway
Saloon Keeper

Joined: Jun 25, 2001
Posts: 15960
    
  19

Welcome to the JavaRanch, Simone!

A couple of hints. Rather than append to an old message thread (which we call "resurrecting a zombie"), it's better to start a thread of your own. Also, we have a "Code" button that can wrap special tags around code and XML samples, which helps make them more readable.

As a general rule, you should not use JSF to produce downloaded content. Use a traditional servlet for that purpose. JSF won't mind. It can even provide data for the servlet using shared session-scope beans.

JSF is designed to produce HTML forms and similar content. If you attempt to force it to produce non-HTML output, the code tends to be both ugly and unreliable. A servlet can do it much more simply and you're less likely to see things break when new versions of JSF come along.


Customer surveys are for companies who didn't pay proper attention to begin with.
 
 
subject: File Download problem using icefaces
 
Similar Threads
Issue with Download using ZipOutputStream
Copying files.
Corrupt file download
IFile in eclipse CDT
Copying File