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:46:22 |
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 Tototeretrouvez moi sur totolmi
|
|
Cette discussion est classée dans : extension, response, equals, contenttype, generefile
Répondre à ce message
Sujets en rapport avec ce message
Retrouver l'executable associe à l'extension d'un fichier ? [ par Cytop ]
Hello !!!Je recherche à retrouver le chemin de l'application qui lance les fichiers en .xxxPar exemple si je lance un .htm, est ce qu'il y a une manie
extension dans fileslistbox [ par harlock ]
Je voudrais savoir s'il est possible de ne pas afficher les extensions dans un filelistbox..merci d'avance
Extension dans Commondialog [ par Pascal MILLIEZ ]
Comment changer en temps réel l'extension se trouvant dans le nom du fichier, lorsque l'utilisateur change l'extension dans la zone liste du commondia
Rattachement d'une extension [ par Brodeur ]
Re bonjour a tous. Cette fois-ci, je ne demandais comment faire pour que lorsque mon programme se lance, il associe toutes les extensions ( par exempl
Lire des fichiers d'extension msg à partir de VB [ par Gbrissot ]
Bonjour,je cherche à lire des fichiers d'extension msg à partir de VB.En effet, dans une application je sauvegarde les messages que j'ai dans mon Inbo
Lire un mail d'extension msg à partir de VB [ par Gbrissot ]
Bonjour,j'ai sauvegardé dans une apllication des messages de ma boîte mail à partir d'Outlook. Les fichiers ainsi sauvegardé sur un disque local ont l
Comment cacher l'extension des fichier ds un File ListBOX [ par KoZo ]
Comment cacher l'extension des fichier ds un File ListBOX.les File List Box affiche tous les fichiers d u nrepertoire.mais comment laisser rien que le
urgent : setup [ par mikax ]
j'ai besoin d'insérer dans le setup de mon application un dossier entier (sans extension) et non pas un fichier (avec extension).alheureusement l'assi
Association Extension d'un fichier <-> Icone [ par Schum ]
Voilà, j'aimerai que mon programme associe à un fichier son icône telle qu'elle est dans Windows.Mais je ne veux pas une liste non exaustive des icone
Extension MS-DOS, parametres URGENT !!! [ par slum ]
Voilà le problème :J'utilise le shell pour ouvrir une fenetre MS-DOS. Mais je dois rajouter une commande, une variable "empl".LE code donne :Shell ("m
Livres en rapport
|
Derniers Blogs
GESTION D'EXCEPTION AVEC LES TASKSGESTION D'EXCEPTION AVEC LES TASKS par richardc
Nous avons vu dans un précédent article comment utiliser Task pour effectuer des opérations dans un autre thread.
Malheureusement, comme tout le monde n'est pas parfait, il se peut que cette exécution se passe mal et qu'une exception se produise.
La...
Cliquez pour lire la suite de l'article par richardc 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
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
|