Пустое пространство в имени файла при загрузке файла
для загрузки запрошенного файла журнала используется следующий java-код:
protected HttpServletResponse response;
....
response.setContentType("application/octet-stream");
String filename = OrgName + ".log";
response.setHeader("Content-Disposition", "attachment; filename= " + filename);
OutputStream os = response.getOutputStream();
os.write(getFile());
os.close();
проблема приходит, когда OrgName
содержит пробел, например "Xyz Pvt Ltd", в этом случае файл будет загружен с именем" Xyz", а не " Xyz Pvt Ltd.бревно."Часть имени после 1-го пробела игнорируется. Обратите внимание, что файл загружен правильно, это только имя, которое не отображается правильно. Я что-то делаю не так? или это стандарт поведение?
среда: Стойки 2, Jboss 5.1.0, Mozilla Firefox 3.5.3
2 ответов
Кажется, я нашел твою проблему. Просто установите строку имени файла в кавычки
response.setHeader("Content-Disposition","attachment; filename=\"" + filename + "\"");
Это должно решить вашу проблему.
Я думаю, вам придется использовать кодировку для пробелов, которые вы можете посмотреть в Apache base64 encoder, я помню, что пробелы кодируются до %20%, и, таким образом, при декодировании вы сможете получить имя файла с пробелами.