Download de arquivos do mysql em java usando hibernate

2 respostas
maugloju

Alguém poderia por favor me explicar como funciona e como se faz um download de arquivos do mysql usando o java com hibernate, preciso de um exemplo facil de entender.

2 Respostas

otavio

No MySQL crie um campo do tipo blob ou longblob. Na classe Java mapeie esse campo como array de bytes, ou seja, byte[].

Enfim, depois de fazer o select e tudo mais, lá no teu servlet ou action… modifique o cabeçalho content-type com o valor octet/stream e mande imprimir esse array de bytes.

Mais fácil que isso só desenhando :slight_smile:

maugloju

Pessoal, eu já consegui resolver, estou postando para quem quiser ver

ServletOutputStream outStream = response.getOutputStream();

    RequestDispatcher disp = null;

    HttpSession session = request.getSession();

    Usuario usuario = (Usuario) session.getAttribute("usuarioLogado");


    if (usuario == null) {

        disp = request.getRequestDispatcher("/erros/erroAcessoNegado.jsp");
        disp.forward(request, response);

    } else {

        Long id = Conversor.numeroLong(request.getParameter("id"));

        CaptacaoDeAlunos captacaoDeAlunos = new CaptacaoDeAlunosDAO().buscarPorId(id);

        response.setHeader("Content-Disposition", "attachment; filename=\"" + captacaoDeAlunos.getNomeDoArquivo() + "\"");
        response.setHeader("cache-control", "no-cache");

        if (captacaoDeAlunos.getTipoDoArquivo().equals(".txt")) {
            response.setContentType("text/plain");
        } else if (captacaoDeAlunos.getTipoDoArquivo().equals(".doc")) {
            response.setContentType("application/msword");
        } else if (captacaoDeAlunos.getTipoDoArquivo().equals(".xls")) {
            response.setContentType("application/vnd.ms-excel");
        } else if (captacaoDeAlunos.getTipoDoArquivo().equals(".pdf")) {
            response.setContentType("application/pdf");
        } else if (captacaoDeAlunos.getTipoDoArquivo().equals(".ppt")) {
            response.setContentType("application/ppt");
        } else {
            response.setContentType("application/octet-stream");
        }

        outStream.write(captacaoDeAlunos.getArquivo());

        //}

        outStream.close();
Criado 20 de janeiro de 2009
Ultima resposta 20 de jan. de 2009
Respostas 2
Participantes 2