Solucionado (ver solução)
Solucionado
(ver solução)
6
respostas

Preciso criar um metodo para realizar Download

Estou tendo dificuldades para montar e utilizar o meu método para realizar o download, esse download sera feito através de um tabale que tem em meu front end

segue o controller que tentei fazer porem não consegui faze-lo funcionar

@RequestMapping(value = "/download/{file_name}", method = RequestMethod.GET) public String downloadFile(@PathVariable("fileName") String fileName, HttpServletResponse response){

Path arquivo = Paths.get(fileName + ".pdf");

if(Files.exists(arquivo)){

response.setHeader(" Content-Disposition","attachment, filename=\"" + fileName + ".pdf" + "\""); response.setContentType(" application/pdf"); try {

Files.copy(arquivo, response.getOutputStream()); response.getOutputStream().flush();

} catch (Exception e) { e.printStackTrace(); } }

return "/ito/pesquisarito"; }

gostaria de saber o que posso mudar, se tem alguma dica de como aplicar esse método desde já agradeço

6 respostas

Opa, o link para download precisa ser um <a> convencional. Dá uma olhada nesse post aqui => https://domineospring.wordpress.com/2016/05/02/abstraindo-o-download-de-arquivos-no-spring-mvc/

certo entendi a ideia do controller e da classe porem com vou apontar com href se meu download e dinamico não entendi para devo apontar esse href para que ele seja dinamico?

você pode fazer um javascript, tipo document.location.href = endereco dinamico aqui...

entao não sei se consegui me expressar bem mais eu preciso criar o download de acordo com o id de cada arquivo no caso, eu ja guardei o caminho de arquivo no banco agora preciso criar um download para baixar de forma especifica cada um.

seguinte Alberto tentei criar uma chamada ajax para esse meu metodo porem ele esta dando erro http 404 segue a chamada que eu criei se poder ajudar agradeço

window.operateEvents = { 'click .download' : function(e, value, row, index) {

jQuery.ajax({

contentType : 'application/json; charset=utf-8', type : 'GET', url : '/sic/ito/download/' + row.nomeArquivo, dataType : 'json',

success : function(response) {

swal( 'Download!!', 'Seu Download Foi Realizado com Sucesso.', 'success' );

$.unblockUI(); }, error : function(jqXHR, textStatus, errorThrown) {

$.unblockUI();

swal( 'Oops..', 'Houve um erro ao realizar o download! ' + jqXHR.responseText, 'error' ) } });

} };

solução!

Bem consegui resolver essa questao Grato!