im einem Download alle Funktionen zu implementieren versuchen, ist meine Anforderung Datei in ZIP-komprimiert werden soll, heren die UIDownload-Dateien vom Server und komprimieren sie im Zip-Format
<p:toolbar>
<f:facet name="right">
<p:commandButton value="Download all photos" ajax="false" actionListener="#{ManageActivities.getAllParticipantPhoto}" onclick="PrimeFaces.monitorDownload(start, stop);" icon="ui-icon-image">
<p:fileDownload value="#{ManageActivities.file}" />
</p:commandButton>
</f:facet></p:toolbar>
und hier ist der managedbean Code
private StreamedContent file;
public void getAllParticipantPhoto() {
ByteArrayInputStream bis = new ByteArrayInputStream(zipBytes());
InputStream stream = bis;
file = new DefaultStreamedContent(stream, "zip", "photos.zip");
}
private byte[] zipBytes() {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ZipOutputStream zos = new ZipOutputStream(baos);
try{
for(Participants p : partcpnts){
if(p.getPhoto() != null){
ZipEntry entry = new ZipEntry(p.getFirstName()+".jpg");
zos.putNextEntry(entry);
zos.write(p.getPhoto());
}
}
}catch(Exception e){
e.printStackTrace();
}
return baos.toByteArray();
}
i-Datei als ZIP erfolgreich herunterladen kann, aber ich bin nicht in der Lage zu extrahieren es, Fenster veranlasst the'cannot geöffnete Datei als Archiv‘Fehler
@Javier festen Wechsel hinzugefügt haben die ZipOutputStream zu schließen, noch Dateien können nicht extrahiert werden –
Können Sie die HTTP-Antwortheader beim Herunterladen der ZIP-Datei posten? Scheitert es in allen Browsern? – Javier