BLOB + displayTag

8 respostas
A

Pessoal… como faco para inserir o campo para download de um BLOB no displaytag?

Obrigada

8 Respostas

fiaux

Você vai ter que criar uma coluna normalmente, o clique nela vai disparar uma ação que pega os bytes desse BLOB e devolve no response de alguma maneira, para que no browser cliente a pessoa faça o download.

A

Mas como eu fazer sem precisar criar um arquivo em disco para download??
Eu vou buscar uma lista de arquivos no banco… e se o usuario desejar, ele faz o download do BInario…

Obrigada

fiaux

Você não vai precisar criar o arquivo. Você tem os bytes que representam o arquivo, basta passar através do browser.

A

Nao tenho nem ideia de como fazer... eu consegui fazer inserindo em um arquivo: mas para mostrar na WEB sei como..
Estou usando struts..

public class BlobSample {
    public static void main(String[] args) throws Exception, IOException, SQLException {
        Class.forName("com.mysql.jdbc.Driver");
        Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3307/bdb", "root", "root");

        FileInputStream fis = null;
        PreparedStatement ps = null;
        try {
            //save image as blob
            
            File file = new File("c:\\arquivoteste.txt");
            fis = new FileInputStream(file);
            

            //read back
            String SELECT_PICTURE = "Select blobTeste from t_2008 where rawID=1";
            ps = conn.prepareStatement(SELECT_PICTURE);
            ResultSet rs =  ps.executeQuery();

            while (rs.next()) {
                //save blob as an image
                FileOutputStream fos = new FileOutputStream("c:\\arquivoteste2.txt");
                InputStream is  = rs.getBinaryStream(3);
                byte[] buf = new byte[3000];
                int read = 0;
                while ((read = is.read(buf)) > 0) {
                    fos.write(buf, 0, read);
                }
                fos.close();
                is.close();
            }

        } finally {
            ps.close();
            fis.close();
        }
    }
}

Se puder me ajudar..

Obrigada

fiaux

http://wiki.apache.org/struts/StrutsFileDownload

A

Obrigada… eu fiz o exemplo… so consegui retornar 1 blob…
Tem como eu inserir um BLOB em um Array… ou alguma sugestao?

Obrigada

fiaux

Você vai chamar essa action para cada link de arquivo na displaytag.

A

Ah… claro…!! lerda eu… Obrigada :smiley:

Criado 16 de setembro de 2008
Ultima resposta 18 de set. de 2008
Respostas 8
Participantes 2