Tenho um programa abaixo que uso para gerar download, mas estou tendo um problema que as pastas ao deszipar e arquivos que contenham caracteres com acento está aparecendo com a codificação toda bagunçada.
Amigo, tem certeza que quer usar “application/octet-stream” como content type? Pelo que vi é um arquivo “.txt”. Logo, não seria melhor usar “text/pain”? Veja se isso resolve.
Abraços.
H
Helder8
Na verdade o código passado está errado estou usando assim
Tentei usar com “text/pain”, mas não funcionou tem alguma idéia, como resolver isso?
Obrigado.
J
jyoshiriro
Olá. Bem, se o conteudo do arquivo está aparecendo com caracteres estranhos é porque ele já está assim devido a sua própria meta informação. Tens que rever como o arquivo é gerado. Se não puder fazer isso, terá que mudar seu charset antes do download.
Mas, tente isso (eu nunca tentei) no contet type: “xxx; charset=ISO-8859-1”
O meu arquivo que faço upload está com os caracteres com acento certo, está gravando perfeito com acento, mas na hora de gerar o download, gera com os caracteres bagunçado, tanto pasta quanto os arquivos que contenham acentuação. Obs: Tudo que tenha acento, fica bagunçado ao fazer o download.
Tem aguma idéia??
Obrigado.
H
Helder8
Acabei de testar da seguinte forma e continua mostrando as pastas e arquivos que contenham acentos com caracteres bagunçados.
Você tem alguma idéia de como corrigir esse problema???
J
jyoshiriro
Amigo, são os NOMES dos arquivos ao descompactar que estão com caracteres estranhos ou o CONTEÚDO deles?
H
Helder8
Acho que não fui bem preciso. Foi mal.
São os nomes dos arquivos que estão com os caracteres estranhos.
J
jyoshiriro
Você poderia explicar como gera esse arquivo ZIP?
Ele é criado pela sua aplicação ou já fazem o upload dele e depois é simplesmente feito o download? Porque se for assim, tem que ver com essa galera especialista em mapa de caracteres em SOs. Nesse caso não seria problema do framework Web, visto que ele não altera sequer 1 bit do arquivo, entende?
H
Helder8
Eu faço assim:
Os usuários fazem o upload do arquivo para o sistema. (Já verifiquei se nessa hora do upload do arquivo guardado, ele está vindo com caracteres estranhos e aparentemente o arquivo guardado no sistema, mesmo contendo acento nos nomes está sendo guardado certo).
Depois eu faço o download do arquivo que está guardado no sistema. (Já notei antes de fazer o download do arquivo se ele está com caracteres estranhos no nome e está certo o nome).
Após o download ao deszipar o arquivo, ele fica os nomes com caracteres estranhos.
Eu faço assim o download do arquivo:
@Action(value="/download",results={@Result(location="telaPrincipal",name=ERRO,type="tiles"),@Result(location="ok",name=SUCESSO,type="stream",params={"contentType","application/octet-stream","inputName","fileInputStream","contentDisposition","attachment;filename=\"download.zip\"","bufferSize","1024"})})publicStringdownload(){try{//Pega o caminho da aplicaçãoServletContextcontext=ServletActionContext.getServletContext();Stringcaminho=context.getRealPath("");//Pega o caminho que está o projeto, e faz o download de tudocaminho=caminho+java.io.File.separator+"arquivo"+java.io.File.separator+"pasta1";//Esse método fará o zip da pasta do projeto para a extensão (.zip)Util.ziparArquivo(caminho,caminho+".zip");fileInputStream=newFileInputStream(newFile(caminho+".zip"));}catch(Exceptione){e.printStackTrace();returnERRO;}returnSUCESSO;}
Antes de fazer o download eu zipo ele da seguinte forma
//Método responsável para mandar zipar a pastapublicstaticvoidziparArquivo(StringcaminhoPasta,StringdestinoZip)throwsException{ZipOutputStreamzip=null;FileOutputStreamfileWriter=null;fileWriter=newFileOutputStream(destinoZip);zip=newZipOutputStream(fileWriter);//Adiciona a pasta no zipadicionarCaminhoZipar("",caminhoPasta,zip);zip.flush();zip.close();}
Tem alguma idéia.
Obrigado
J
jyoshiriro
Isso pra mim tá com cara de “windows x linux” no “cliente x servidor” se é que me entendeu ^^’
Se puder, manda fazer o download do arquivo original, sem zipá-lo. Se assim o arquivo vier normal então o problema tá na rotina de “compactação”.