Accueil > Forum > > > > Générer une image et l'afficher dans une page du navigateur
Générer une image et l'afficher dans une page du navigateur
mardi 5 avril 2005 à 11:47:18 |
Générer une image et l'afficher dans une page du navigateur

xylo2
|
J'ai posté ce message dans Servlet et JavaServerPage pour Java mais c'est ptete mieux de ce côté pour obtenir une réponse
Bonjour, Je travaille actuellement sous Websphere Portal 5.1 et je fais un portlet qui suit le framework Struts.
Voilà
mon problème, j'ai sous le Web Content Management du server enregistré
des images et documents divers. Je n'arrive pas à utiliser l'API WCM
pour générer des liens vers ces documents alors je refais le monde.
J'essaye donc d'envoyer les données du documents dans une page du
navigateur avec l'entête correspondante (le genre de choses qui
fonctionne très facilement en php)
Voici mon code public
ActionForward execute (ActionMapping mapping, ActionForm
form,HttpServletRequest request,HttpServletResponse response)throws
Exception { String documentIdString=request.getParameter("id"); Workspace ws=Outils.getWorkspace(request); try{ DocumentId id=ws.createDocumentId(documentIdString); if (documentIdString.indexOf("LibraryImageComponent")>-1){ LibraryImageComponent document=(LibraryImageComponent) ws.getById(id); if (document!=null){ genereFile(document, response); } } else if (documentIdString.indexOf("LibraryFileComponent")>-1){ LibraryFileComponent document=(LibraryFileComponent) ws.getById(id); if (document!=null){ genereFile(document, response); } } } catch (Throwable t){ //t.printStackTrace(); } return null; } public void genereFile(byte[] data, String fileName, HttpServletResponse response){ System.err.println("genereFile(..., "+fileName+", "+response+")"); String extension=null; String contentType=null; if (data!=null && fileName!=null){ int posPoint=fileName.lastIndexOf('.'); extension=fileName.substring(posPoint+1).toLowerCase(); if (extension.equals("asf")) contentType="video/x-ms-asf"; else if (extension.equals("avi")) contentType="video/avi"; else if (extension.equals("doc")) contentType="application/msword"; else if (extension.equals("zip")) contentType="application/zip"; else if (extension.equals("xls")) contentType="application/vnd.ms-excel"; else if (extension.equals("gif")) contentType="image/gif"; else if (extension.equals("jpg")) contentType="image/jpeg"; else if (extension.equals("jpeg")) contentType="image/jpeg"; else if (extension.equals("wav")) contentType="audio/wav"; else if (extension.equals("mp3")) contentType="audio/mpeg3"; else if (extension.equals("mpg")) contentType="video/mpeg"; else if (extension.equals("mpeg")) contentType="video/mpeg"; else if (extension.equals("rtf")) contentType="application/rtf"; else if (extension.equals("htm")) contentType="text/html"; else if (extension.equals("html")) contentType="text/html"; else if (extension.equals("asp")) contentType="text/asp"; else contentType="application/octet-stream"; response.reset(); response.setContentType(contentType); response.setContentLength(data.length); OutputStream os; try { os = response.getOutputStream(); System.err.print("response="+response+", os = "+os+", data="); System.err.println(data+", extension="+extension+", contentType="+contentType); if (os!=null){ os.write(data); os.flush(); os.close(); } } catch (Throwable t) { t.printStackTrace(); } } } public void genereFile(LibraryFileComponent file, HttpServletResponse response){ System.err.println("genereFile("+file+", "+response+")"); byte[] data=null; String fileName=null; if (file!=null){ try { System.err.println("file!=null"); data = file.getFile(); fileName=file.getFileName(); genereFile(data, fileName, response); } catch (Throwable t) { t.printStackTrace(); } } }
public void genereFile(LibraryImageComponent file, HttpServletResponse response){ System.err.println("genereFile("+file+", "+response+")"); byte[] data=null; String fileName=null; if (file!=null){ System.err.println("file!=null"); try { data = file.getImage(); fileName=file.getImageFileName(); genereFile(data, fileName, response); } catch (Throwable t) { t.printStackTrace(); } } } }
Et voici le log que ça me génère (SystemErr.log) genereFile(com.ibm.workplace.wcm.api.WCM_LibraryImageComponent@71373fd7,
com.ibm.wps.struts.base.WpsStrutsPortletResponseWrapper@2a9ffd6) file!=null genereFile(..., 2004-06-24-02.jpg, com.ibm.wps.struts.base.WpsStrutsPortletResponseWrapper@2a9ffd6) response=com.ibm.wps.struts.base.WpsStrutsPortletResponseWrapper@2a9ffd6,
os = null, data=[B@b26ffd0, extension=jpg, contentType=image/jpeg
Je ne comprends pas pourquoi le response.getOutputStream() renvoit null (response.getWriter() aussi) De plus, une fois ma page chargée, l'affichage est... la dernière page sur laquelle il y avait un lien vers un document
Pourtant la JavaDoc de Struts dit à propos de la méthode exécute Process
the specified HTTP request, and create the corresponding HTTP response
(or forward to another web component that will create it), with
provision for handling exceptions thrown by the business logic. Return
an ActionForward instance describing where and how control should be
forwarded, or null if the response has already been completed.
Donc mes questions sont : - Comment bien envoyer mes données vers le flux de sortie ? -
Dois-je changer le void en mes fonctions genereFile en
HttpServletResponse ? (pourtant en java, les paramètres sont passés en
référence et non en recopie ?)
Merci d'avance pour votre aide
Totote
retrouvez moi sur totolmiTototeretrouvez moi sur totolmi
|
|
Cette discussion est classée dans : extension, response, equals, contenttype, generefile
Répondre à ce message
Sujets en rapport avec ce message
Générer une image et l'afficher dans une page du navigateur [ par xylo2 ]
Bonjour,Je travaille actuellement sous Websphere Portal 5.1 et je fais un portlet qui suit le framework Struts.Voilà mon problème, j'ai sous le Web Co
ouverture de fichier depuis une servlet [ par gregxyz ]
Bonjour, j'ai un formulaire dans une page jsp qui redirige vers ma servlet, dans cette servlet je genere un flux excel avec POI et ensuite je
Probleme avec une servlet [ par kgadhi ]
Bonjour, je suis entrain de développer une application qui récupére une donnée sur un formulaire "page1.jsp" et l'affiche sur une page web "page2.jsp"
DisplayMode, Linux et VidMode extension. [ par akirox ]
Bonjour, Voila mon problème et que j'aimerai pouvoir gérer la résolution de l'écran (mettre en fullScreen) sous linux qui ne supporte pas les DisplayM
Acces à un WebService [ par gcorbineau ]
Bonjour à tous,J'essaye d'accéder à un service web en l'occurence celui de "capescience.com " mais voila il me retourne toujours le message d'erreur
JRadioButton [ par mastermario ]
Bonjours a tous, voila mon probleme J'ai deux JRadioButton ( Celsius et Fahrenheit pour une conversion de température ) Je voudrait que lorsque l'un
Probleme déclaration de fonction [ par developvbdebut ]
Bonjour tout le mondeJ'ai un probleme pour la réalisation d'une fonction.Voici le code.public instruct() {if(c.bcaf.equals("café") && sr==0) ||(c.bcaf
Probleme bouton et fonction [ par developvbdebut ]
Bonsoir tout le mondeJe souhaiterai initialiser des bouton.J'ignore comment faire car c'est dans une fonction.public class Monnayeur {public <
lien href et jsp/servlet [ par kgadhi ]
Bonjour tous le monde,J'ai un petit probleme et j'ai besoin de votre aide,j'ai une servlet qui fait appel à une page jsp:accueil.jsp:%@page contentTyp
FileChooser + extension [ par samplaid ]
[code] JFileChooser fc = new JFileChooser(); int res = fc.showSaveDialog(null); [/code] Bonjour comment ajouter l'extension xm
Livres en rapport
|
Derniers Blogs
UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|