2012-10-26 5 views
0

J'ai une application web Java qui rendra à un moment donné les pages avec beaucoup d'images. Ces images sont insérées en jsp sous forme de balises html img. L'utilisateur peut voir ceux dans le navigateur.GridFS convertit les fichiers en fichiers E/S

La quantité d'images augmente et je pense à les déplacer dans gridfs.

Ma question: est-ce une façon de sélectionner le fichier et le présenter au client dans la page Web sans l'écrire sur le disque dur?

Je dois mentionner qu'il y a beaucoup de requêtes http simultanées pour différentes pages qui contiennent des liens img.

+0

Pourquoi est votre question? – smk

+0

Parce que je ne connais pas un meilleur moyen de sélectionner des fichiers (images) de gridfs et de les représenter en html comme img. –

Répondre

0

J'ai trouvé la réponse. Je peux voir l'image dans le navigateur, donc utiliser un comme hyperlien

@RequestMapping (value = "/test", method = RequestMethod.GET, produces = MediaType.IMAGE_JPEG_VALUE) 
@ResponseBody 
public byte[] test(HttpServletRequest request) { 
    //curl -v http://localhost:8080/Bikeshop/admin/test > /dev/null 
    String realPath = request.getSession().getServletContext().getRealPath("/resources/images/catalog/sample.jpg"); 

    try { 
     InputStream is = new FileInputStream(realPath); 
     BufferedImage img = ImageIO.read(is); 
     ByteArrayOutputStream bos = new ByteArrayOutputStream(); 
     ImageIO.write(img, "jpg", bos); 
     return bos.toByteArray(); 
    } catch (FileNotFoundException e) { 
     e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates. 
    } catch (IOException e) { 
     e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates. 
    } 

    return null; 
} 
Questions connexes