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
DéMARRONS AVEC LES TASKSDéMARRONS AVEC LES TASKS par richardc
Que vous le vouliez ou non, le développement multi-tâche est maintenant une obligation pour toute nouvelle application. Il est donc vital d'en comprendre les mécanismes et de s'y mettre le plus tôt possible.
En attendant le .NET Framework 4.5 avec le...
Cliquez pour lire la suite de l'article par richardc SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE)[HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE) par Gio
Je m'y prends un peu tard je sais, mais bon je suis développeur web et donc hyper fainéant ! Toujours dans le cadre des technologies émergentes, ici HTML5, parce qu'on aime HTML5 chez Wyg , nous seront présent, le vieux ( Aurélien V.) et moi, pour pr...
Cliquez pour lire la suite de l'article par Gio
Forum
RE : J2EE OU ASP RE : J2EE OU ASP par Julien39
Cliquez pour lire la suite par Julien39 J2EE OU ASP J2EE OU ASP par ikanD
Cliquez pour lire la suite par ikanD
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|