Existe alquma maneira de fazer forçar o download de uma arquivo .java ao invez de ele abrir no navegador?
Configure seu servidor web e/ou browser
Tipo não entendi velho.
Pode explica melhor. Ou então não existe como fazer alguma coisa no JSP mesmo pra que o link para o arquivo .java não abre no IE mas sim execute um download?
Olá, vc pode tentar algo +/- assim:
[code]public static void download( String fileName, String content, HttpServletResponse response )
throws IOException {
response.addHeader( "Content-Disposition",
"attachment; filename=" + fileName );
response.setContentType( "application/download" );
ServletOutputStream outStream = response.getOutputStream();
try {
outStream.print( content );
outStream.flush();
} finally {
outStream.close();
}
}[/code]
[]'s
[quote=chicobento]Olá, vc pode tentar algo +/- assim:
[code]public static void download( String fileName, String content, HttpServletResponse response )
throws IOException {
response.addHeader( "Content-Disposition",
"attachment; filename=" + fileName );
response.setContentType( "application/download" );
ServletOutputStream outStream = response.getOutputStream();
try {
outStream.print( content );
outStream.flush();
} finally {
outStream.close();
}
}[/code]
[]'s[/quote]
Chico assim ate funcionou em partes. Aparte que não funcionou a a minha de adptar.
pois to chamando o metodo passando o nome do arquivo e o caminho dele mais o response ai ele abra o download com o arquivo .java contendo o conteudo do caminho que coloquei e não a classe gerada oque estou fazendo de errado?
[quote=tiagosilveira]Chico assim ate funcionou em partes. Aparte que não funcionou a a minha de adptar.
pois to chamando o metodo passando o nome do arquivo e o caminho dele mais o response ai ele abra o download com o arquivo .java contendo o conteudo do caminho que coloquei e não a classe gerada oque estou fazendo de errado?[/quote]
Peraê, acho que eu não entendí seu problema. O que você quer afinal ?
Que o usuário clique em um link e apareça a caixa de download de um arquivo .java, ou que o usuario clique em um link e apareça uma caixa de download do .class ?
[quote=chicobento][quote=tiagosilveira]Chico assim ate funcionou em partes. Aparte que não funcionou a a minha de adptar.
pois to chamando o metodo passando o nome do arquivo e o caminho dele mais o response ai ele abra o download com o arquivo .java contendo o conteudo do caminho que coloquei e não a classe gerada oque estou fazendo de errado?[/quote]
Peraê, acho que eu não entendí seu problema. O que você quer afinal ?
Que o usuário clique em um link e apareça a caixa de download de um arquivo .java, ou que o usuario clique em um link e apareça uma caixa de download do .class ?
[/quote]
Do .Java mas e que eu gero ele em com
File diretoriodoArquivo = new File(lugardoArquivo);
writer = new FileWriter(new File(diretoriodoArquivo, nomeEntity+".java"),true);
PrintWriter resultado = new PrintWriter(writer);
Ai preencho ele com resultado.println
e ai depois de dar resultado.close() e writer.close() queria q fosse feito o download dele.
Mas por esse metodo que vc me passou não consegui mandar o .java criado mas sim criar uma na horar com o conteudo da String content.
Entendeu?
Faça assim:
Crie uma classe com esses métodos (FileUtil por exemplo) e chame o seguinte metodo passando um File com o arquivo, e o response:
[code]// Passe para esse método um File com o arquivo desejado.
public static void download( File file, HttpServletResponse response )
throws IOException {
FileUtil.download( file.getName(), read( file ), response );
}[/code]
[code]public static byte[] read( File file ) throws IOException {
byte[] content = null;
int fileLength = (int) file.length();
FileInputStream fileInput = null;
try {
fileInput = new FileInputStream(file);
BufferedInputStream bufferedInput = new BufferedInputStream(
fileInput);
content = new byte[fileLength];
bufferedInput.read(content, 0, fileLength);
bufferedInput.close();
} finally {
if (fileInput != null) {
fileInput.close();
}
}
return content;
}[/code]
[code]public static void download( String filename, byte[] content,
HttpServletResponse response ) throws IOException {
response.addHeader( "Content-Disposition",
"attachment; filename=" + filename );
response.setContentType( "application/octet-stream" );
ServletOutputStream outStream = response.getOutputStream();
// envia o conteúdo do arquivo para o stream de resposta
try {
outStream.write( content );
outStream.flush();
} finally {
outStream.close();
}
}[/code]
[]'s
Vlw Chico funcionou
[quote=chicobento]Olá, vc pode tentar algo +/- assim:
[code]public static void download( String fileName, String content, HttpServletResponse response )
throws IOException {
response.addHeader( "Content-Disposition",
"attachment; filename=" + fileName );
response.setContentType( "application/download" );
ServletOutputStream outStream = response.getOutputStream();
try {
outStream.print( content );
outStream.flush();
} finally {
outStream.close();
}
}[/code]
[]'s[/quote]
Estou resgatando esse topico pois estou fazendo a implementacao de um simples download de arquivo na minha aplicacao. Esse topico apareceu no resultado da busca.
Minha duvida eh: o que seria esse argumento ‘content’ do tipo String passado para o metodo download?
Valeu 8)
sei q o post é antigo, mas o “content” em questão é o conteúdo a ser baixado…
Pessoal, achei bem legal as classes, mas tem algum exemplo de como usar???