Привет, я пробовал два разных метода отправки файла в браузер (чтобы пользователь загрузил файл). Я попробовал пример из MyFacesПроблема с попыткой отправить файл в браузер в JSF
вики страницыFacesContext context = FacesContext.getCurrentInstance();
HttpServletResponse response = (HttpServletResponse)context.getExternalContext().getResponse();
int read = 0;
byte[] bytes = new byte[1024];
String fileName = "test.txt";
response.setContentType("text/plain");
response.setHeader("Content-Disposition", "attachment;filename=\"" + fileName + "\"");
OutputStream os = null;
StringBuffer stringBuffer1 = new StringBuffer("Java Forums rock");
ByteArrayInputStream bis1;
try {
bis1 = new ByteArrayInputStream(stringBuffer1.toString().getBytes("UTF-8"));
os = response.getOutputStream();
while ((read = bis1.read(bytes)) != -1) {
os.write(bytes, 0, read);
}
os.flush();
os.close();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
FacesContext.getCurrentInstance().responseComplete();
Я также попытался использовать компонент под названием FileDownload из PrimeFaces. Оба дают тот же результат:
Получаем ответ от сервера, ответ содержит текст, который должен находиться в файле. Заголовок является следующим:
X-Powered-By Servlet/3.0, JSF/2.0
Server GlassFish v3
Content-Disposition attachment;filename="test.txt"
Content-Type text/plain
Transfer-Encoding chunked
Date Thu, 20 May 2010 06:30:20 GMT
Для меня это выглядит правильно, но по какой-то причине я не получаю, чтобы загрузить файл, я просто получить этот ответ в поджигатель.
Есть ли у кого-нибудь идеи?, Может быть проблема с сервером? Я с помощью GlassFish 3
Благодарности /Stefan
Jepp, что было проблемой –