Arroba!
Pessoal, estou trabalhando em uma funcionalidade pra uma aplicação aqui na empresa que, resumindo é o seguinte. Depois de fazer upload de arquivos, disponibilizá-los para download.
Está tudo funcionando certinho… quer dizer… quase tudo…
O problema está no download:
Se o arquivo contiver espaços no nome, na hora de selecionar o local onde salvar o arquivo, são colocados caracteres ‘+’ (Mais) no lugar dos espaços.
Alguém sabe como resolver :?:.
Segue o código:
byte[] bFile = anexo.getArquivoByte();
response.setContentLength(anexo.getFileSize());
response.setContentType("application/x-file-download");
response.setHeader("Content-disposition", "attachment; filename=" + URLEncoder.encode(anexo.getNomeArquivo(), "UTF-8"));
response.setHeader("Cache-Control", "max-age=600");
ServletOutputStream outStream = response.getOutputStream();
outStream.write(bFile);
outStream.flush();
Ah!
Eu já tentei trocar isso
response.setHeader("Content-disposition", "attachment; filename=" + URLEncoder.encode(anexo.getNomeArquivo(), "UTF-8"));
por isso
response.setHeader("Content-disposition", "attachment; filename=\"" + anexo.getNomeArquivo() + "\"");
Mas não deu suco… em lugar de colocar ‘+’ colocou ‘_’ (underline)