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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
| public ActionForward visualiser(ActionMapping pMapping, ActionForm pForm,
HttpServletRequest pRequest, HttpServletResponse pResponse)
throws java.lang.Exception {
DetailDocumentForm lDetailDocumentForm = (DetailDocumentForm)pForm ;
String idDocument = pRequest.getParameter(IWebConstantes.PARAM_ID_DOCUMENT);
UtilisateurBean lUtilisateurBean = (UtilisateurBean) pRequest.getSession().getAttribute(IWebConstantes.SESSION_UTILISATEUR);
DocumentManager.getInstance().loadDocumentContentsInCache(lUtilisateurBean.getLogin(),lUtilisateurBean.getPassword(),lDetailDocumentForm.getId());
byte[] lOutput = null;
String lMimeType = "";
String lNameOutput = "";
//initialisation des listes pour la récuperation des valeurs des elements
List <byte[]> lListOutputs = new ArrayList<byte[]>();
List <String> lListMimeTypes = new ArrayList<String>();
List <String> lListNameOutput = new ArrayList<String>();
//recuperation des element contenant le document, son type mime et son nom
Element lOutputElement = ((CacheManager) ApplicationContext.getInstance()
.getParameter(IWebConstantes.CACHE_CONTENT)).getCache(IWebConstantes.CACHE_CONTENT_NAME).get(idDocument);
Element lMimeElement = ((CacheManager) ApplicationContext.getInstance()
.getParameter(IWebConstantes.CACHE_CONTENT)).getCache(IWebConstantes.CACHE_CONTENT_NAME).get(idDocument+"Mime");
Element lNameElement = ((CacheManager) ApplicationContext.getInstance()
.getParameter(IWebConstantes.CACHE_CONTENT)).getCache(IWebConstantes.CACHE_CONTENT_NAME).get(idDocument+"Name");
try {
//recuperation de la valeur des element
lListOutputs = (List<byte[]>) lOutputElement.getValue();
lListMimeTypes = (List<String>) lMimeElement.getValue();
lListNameOutput = (List<String>) lNameElement.getValue();
if(lListOutputs.size()==1 && lListMimeTypes.size()==1 && lListNameOutput.size()==1){
//attribution des elements
lOutput = lListOutputs.get(0);
lMimeType = lListMimeTypes.get(0);
lNameOutput = lListNameOutput.get(0);
}
else{
System.out.println("getByteOutPut : Plusieurs documents sont récupérés size = "+ lListOutputs.size());
}
} catch (Exception e1) {
// TODO Bloc catch auto-généré
System.out.println(e1.getMessage());
}
pResponse.setContentType(lMimeType);
pResponse.setHeader("Content-disposition", "inline; filename=\"" + lNameOutput + "\"");
OutputStream os = pResponse.getOutputStream();
ByteArrayOutputStream bos = new ByteArrayOutputStream();
try {
bos.write(lOutput);
} catch(Exception e) {
System.out.println("OpenPdf Exception : " + e.getMessage());
}
pResponse.setContentLength(bos.size());
os.write(bos.toByteArray(), 0, bos.size());
os.flush();
os.close();
return pMapping.findForward(IStrutsConstantes.FORWARD_SUCCESS);
} |
Partager