Kalunga
Fevereiro 27, 2009, 1:01pm
#1
Estou precisando abri um arquivo excel fora do browser, a minha aplicação gera o arquivo e abre uma tela para voce escolher se quer salvar o arquivo ou abrir, porem quando peço pra ele abrir ele abre dentro do browser e eu preciso que esse arquivo, quando for solicitado abrir, ele abra fora do browser.
Alguem ja fez algo parecido e pode me ajudar.
OBS.Estou usando java1.4 e Struts 1.2.
Valew
se vc estiver utilizando um
[a href =“arquivo.xls”] Arquivo [/a]
basta trocar por
[a href =“arquivo.xls” target=“blank”] Arquivo [/a]
Kalunga
Fevereiro 27, 2009, 1:17pm
#3
Cara valew mas o que eu preciso seja que pela classe java abra um arquivo que é o nome é gerado dinamicamente.
Mas valew
Ate mais
certo…eu tenho uma servlet que faz isso e não abre no browser…segue o fonte:
File xls = new File(relatorio.getVersaoXls());
byte [] array = getBytesFromFile(xls); //chamada a um metodo
response.setContentType("application/xls");
response.setHeader("Content-Disposition","attachment; filename=relatorio-" + new Date() + ".xls");
response.setContentLength(array.length);
ServletOutputStream servletOutPutStream = response.getOutputStream();
servletOutPutStream.write(array, 0, array.length);
servletOutPutStream.flush();
servletOutPutStream.close();
o método chamado na segunda linha
private byte[] getBytesFromFile(File file) {
InputStream inputStream = null;
byte[] bytes = null;
try {
inputStream = new FileInputStream(file);
long length = file.length();
if (length > Integer.MAX_VALUE) {
// File is too large
}
bytes = new byte[(int)length];
// Read in the bytes
int offset = 0;
int numRead = 0;
while (offset < bytes.length && (numRead = inputStream.read(bytes, offset, bytes.length-offset)) >= 0) {
offset += numRead;
}
// Ensure all the bytes have been read in
if (offset < bytes.length) {
System.out.println("Could not completely read file "+file.getName());
}
inputStream.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return bytes;
}
É dinâmico e não possui links…ok…
[]'s
Kalunga
Fevereiro 27, 2009, 3:06pm
#5
Giulliano, valew pela ajuda funcionou perfeito
Vou deixar aqui pra quem quizer abrir o arquivo dentro do browser é só substituir nesta linha
response.setHeader("Content-Disposition","attachment; filename=relatorio-" + new Date() + ".xls");
onde esta escrito attachment; por in; .
Ate mais