| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/08/2010 20:46:23
|
roanbrasil
JavaChild
Membro desde: 17/12/2007 12:03:50
Mensagens: 109
Localização: Campinas, SP
Offline
|
alguem resolveu esse problema? O meu está dando o seguinte erro. Ja tentei C:\ e C:/
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/08/2010 12:00:47
|
soul
Thread.start()
Membro desde: 26/05/2007 15:05:41
Mensagens: 45
Localização: são paulo
Offline
|
Você não pode apontar direto para o arquivo se é o que tentou. Você tem que ler o arquivo la no servidor via inputStream e então gravar no outputStream do servlet !!
|
pirm |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/01/2011 01:24:48
|
divinorps
Smalltalk
![[Avatar]](/images/avatar/0b4a7b183837c441dbe027acf7fbc1d1.jpg)
Membro desde: 09/01/2011 01:06:09
Mensagens: 1
Offline
|
ronildobraga wrote:Ola galera !
Alguem sabe se no JSF existe uma tag para fazer download de um arquivo do servidor ?
Eu criei um dataTable que lista os arquivos no servidor, mas o cliente precisa fazer download desses arquivos.
Caso nao exista uma forma facil atraves do JSF existe uma outra forma ?
Desde já muito obrigado.
Fiz algo semelhante, porém, o arquivo que precisava fazer download era gerado pela própria aplicação e armazanada em uma pasta no servidor. Criei um arquivo jsp puro e na página jsf da aplicação criei um link que passa como parâmetro para a página JSP o nome e endereço do arquivo:
Arquivo JSP:
<%@ page language="java" import="java.io.*" errorPage="" %>
<%
String nomeArquivo = request.getParameter("nomeArquivo");
File f = new File(nomeArquivo);
response.reset();
response.setContentType("application/text");
response.setHeader("Content-disposition","attachment; filename=" + f.getName());
FileInputStream input = new FileInputStream(f);
InputStream in = new FileInputStream(f);
BufferedInputStream bin = new BufferedInputStream(in);
DataInputStream din = new DataInputStream(input);
while(input.available() > 0){
response.getOutputStream().write(input.read());
}
in.close();
bin.close();
din.close();
response.getOutputStream().flush();
%>
Link da página JSF que faz a chamada ao arquivo JSP:
<a href="abrirArquivo.jsp?nomeArquivo=/tmp/arquivos/teste.xls">Download</a>
Isso é uma ganbiarra, mas funciona...
Veja se te serve!
Divino.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/08/2011 09:13:00
|
Diabo Loiro
GUJ Master
Membro desde: 24/03/2009 07:46:14
Mensagens: 1040
Localização: Praia Grande - SP
Offline
|
fiz uma implementação e um post sobre isso tem exemplo la do projeto para baixar
http://brunodanielmarinho.wordpress.com/2011/08/26/download-de-arquivos-do-servidor/
|
Sun Certified Java Associate
Sun Certified Java Programer 6.0
Sun Certified Web Component Developer
Oracle Certified Professional, Java EE 5 Business Component Developer
Blog
http://brunodanielmarinho.wordpress.com
Fals - Osum Leader
http://osum.sun.com/group/fals
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/09/2011 14:11:10
|
javaimae
Thread.start()
Membro desde: 08/08/2011 14:02:43
Mensagens: 36
Offline
|
Diabo eu testei sua aplicação e realmente funciona mas como eu faria se o aquivo fosse gerado em tempo de execução, e não fica-se na pasta web?
Ou tem como em tempo de execução gravar o arquivo no .war?
|
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/09/2011 14:24:11
|
Diabo Loiro
GUJ Master
Membro desde: 24/03/2009 07:46:14
Mensagens: 1040
Localização: Praia Grande - SP
Offline
|
Pegando como base a solução do post o que ele faz basicamente é pegar um arquivo no disco>ler e colocar no outputstream.
Então se vc quer gerar dinamicamente voce deve gerar o arquivo e em vez de gravar ele no disco... vc grava direto no outputstream.
No meu caso eu gerava um excel do banco de dados e gravava na hd depois lia ele e mandava para o usuario.
A solução foi gerar o excel e escrever ele direto em um ByteArrayOutputstream em vez de escrever na hd, o ByteArrayOutputStream tem um metodo toByteArray que pode ser enviado ao usuário se vc modificar levemente o o codigo do post retirando todo codigo que faz a leitura do arquivo e transforma ele em um array de bytes antes de devolver para o usuário.
|
Sun Certified Java Associate
Sun Certified Java Programer 6.0
Sun Certified Web Component Developer
Oracle Certified Professional, Java EE 5 Business Component Developer
Blog
http://brunodanielmarinho.wordpress.com
Fals - Osum Leader
http://osum.sun.com/group/fals
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/09/2011 14:40:48
|
javaimae
Thread.start()
Membro desde: 08/08/2011 14:02:43
Mensagens: 36
Offline
|
È você está correto, analisei o código novamente e é isto mesmo
|
|
|
|
 |
|
|
|
|