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
TECHDAYS PARIS 2010 : LES SERVICES D'APPLICATIONS DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LES SERVICES D'APPLICATIONS DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Xavier Moreels et Julien Bakmezdjian Ce sujet est lié au partage des applications comme services dans SharePoint 2010, ceci représente la possibilité de créer sa propre application qui sera utilisable comme ceux en standard : Search...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : LA GED ET SHAREPOINT 2010TECHDAYS PARIS 2010 : LA GED ET SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Etienne Lacour Cette session a commencé par un rappel de la gestion de contenu et surtout une résumé des points ayant été amélioré avec 2010. Accompagné d'un point sur le cycle de vie des documents. Un rappel du fonctionnement de S...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : SHAREPOINT 2010 ET LES RéSEAUX SOCIAUXTECHDAYS PARIS 2010 : SHAREPOINT 2010 ET LES RéSEAUX SOCIAUX par ROMELARD Fabrice
Animé par: Olivier Lepeltier et Karim Manar Cette session commence par la présentation du concept de réseau social, mais surtout de la particularité de du réseau social dans une entreprise. La vision du réseau social est donc une extension du MyS...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : SHAREPOINT 2010 - DESCRIPTION ET NOUVEAUTéSTECHDAYS PARIS 2010 : SHAREPOINT 2010 - DESCRIPTION ET NOUVEAUTéS par ROMELARD Fabrice
Animé par: Karim Manar et Laurent Beaudouin Cette session a pour but de revenir sur ce qu'est SharePoint globalement, mais aussi de voir les évolutions liées avec l'avènement de la version 2010. A partir de la marguerite de...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : PLEINIèRE LUNDITECHDAYS PARIS 2010 : PLEINIèRE LUNDI par ROMELARD Fabrice
Comme chaque année, c'est le grand rassemblement autour des technologies Microsoft qui se déroule donc à Paris au Palais des Congrès. Cette année est riche pour Microsoft en terme de livraison produit, paris l...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
RE : SDKRE : SDK par ucfoutu
Cliquez pour lire la suite par ucfoutu
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
Comparez les prix

HTC Magic
Entre 429€ et 429€
|