Como forçar usuário a escolher diretório onde salvar arquivo?

Boa tarde,

Estou criando um gerador de relatórios e a interface é bem simples:

  • JSP com form dos filtros a ser preenchidos e o submit indo pra action;
  • Action conforme abaixo:
@Result(name = "ok", type = "stream", params = {
        "contentType", "application/octet-stream", "inputName", "arquivo", "contentDisposition", "attachment; filename=relatorio.xls", "bufferSize", "1024"
})
public class GeraRelatorioAction {
...

Meu problema é que o octet-stream funciona de formas diferentes dependendo do browser a ser utilizado. Por exemplo no Chrome o download automaticamente começa e vai para o diretório definido nas configurações dele, no Opera aparece para escolher onde salvar o arquivo… O que eu queria era que independente do browser fosse exibido um popup exigindo onde salvar o arquivo.

Tem alguma forma de fazer isso?

*Edit: Esqueci de dizer, mas estou usando Struts2.

Obrigado.

O MegaUpload resolveu isso de uma forma um pouco grotesca - eles escreveram uma extensão para o Firefox que força a gravar o arquivo no diretório de downloads do cidadão que está querendo baixar aquele episódio do animê :slight_smile:

Como o relatório é em formato XLS, o que ocorre se você, em vez de baixar como application/octet-stream, não invocar diretamente o Excel (caso esteja instalado na máquina do cidadão) usando application/vnd.ms-excel ?

[quote=entanglement]O MegaUpload resolveu isso de uma forma um pouco grotesca - eles escreveram uma extensão para o Firefox que força a gravar o arquivo no diretório de downloads do cidadão que está querendo baixar aquele episódio do animê :slight_smile:

Como o relatório é em formato XLS, o que ocorre se você, em vez de baixar como application/octet-stream, não invocar diretamente o Excel (caso esteja instalado na máquina do cidadão) usando application/vnd.ms-excel ? [/quote]

Acabei de testar usando esse parâmetro e, na minha máquina que não possui Excel instalado (Linux), o comportamento foi idêntico ao octet-stream.