Salut,
Je travaille avec Richfaces 3.3.2,seam2.0, je veux afficher un flux multimedia(video,PDF) dans un modalpanel,j'utilise le composant mediaoutpout et ca marche:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
<rich:modalPanel id="modal" shadowDepth="0">
<a:mediaOutput
id="media"
element="object"
createContent="#{bean.methode}"
session="true"
cacheable="false"
mimeType="#{bean.type}" style="width:800px;height:600px;"
standby="loading..."
/>
</rich:modalPanel> |
Mais les problemes sont:
-avec IE7: le media output est inconnu.
-avec MF: parfait pour les images et les txt le genère des exceptions pour les pdf (socket peer..) et la video le télecharge partiellement.
Donc je vois que le mieux et d'ecrire sur la servlet reponse(car ca marche sur tout les navigateurs sans générer des exceptions) .
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
public void Afficher(Int cle) throws IOException{
Media m =entityManager.find(Media.class,cle);
HttpServletResponse response = (HttpServletResponse) extCtx
.getResponse();
response.setContentType(m.getContentype_media());
final File file = new File(path de media);
response.setContentLength((int) file.length());
final FileInputStream fis1 = new FileInputStream(file);
final OutputStream os = response.getOutputStream();
byte[] fileContent = new byte[4096];
int r = 0;
while (r >= 0) {
r = fis1.read(fileContent);
os.write(fileContent);
}
os.flush();
os.close();
facesContext.responseComplete();
} |
et dans la vue:
<s:link value="consulter" target="_blank" action="#{bean.afficher(media.identifiant)}"/>
Mais le media voulu est afficher sur une autre page.
Est ce qu'il y a un moyen pour renvoyer la media directement au client (par Servlet de reponse) et l'afficher dans un modelpanel (ou un pop up)?
Partager