"," в имени файла при загрузке файла

Я загружаю файл с контроллера. Это не работает. Это из-за "," в имени файла. Если я удалю «,» от имени, он будет работать. Для этого есть какая-то работа. Должен ли я делать String.replace ("," ""). Должен быть лучший способ?

response.setHeader("Content-Disposition", "inline; filename=" + "abbbbababbaababba.4.1.2013,aakdfhfdf.xlsx");

Полный метод

@RequestMapping(value = "/newsimage/{newsImageId} ", method = RequestMethod.GET)
public void getImage(HttpServletRequest request, HttpServletResponse response, @PathVariable long newsImageId) {

    NewsImage newsImage = newsImageService.findById(newsImageId);
    String fileName = newsImage.getFileName();
        response.setHeader("Content-Disposition", "inline; filename=" + "abbbbababbaababba.4.1.2013,aakdfhfdf.xlsx");
    response.setContentType(newsImage.getContentType());
   //response.setHeader("Content-Disposition", "attachment;filename=" + newsImage.getFileName());

    OutputStream out;
    try {
        out = response.getOutputStream();
        out.write(newsImage.getData());
        out.flush();
    } catch (IOException e) {
        logger.error(e.getMessage());
    }

}
1
добавлено отредактировано
Просмотры: 2
nl ja de
добавлено автор Aaron Digulla, источник

2 ответы

Вам нужно указать имя файла, иначе оно интерпретируется как часть атрибута заголовка.

response.setHeader("Content-Disposition", 
    "inline; filename=\"" + "abbbbababbaababba.4.1.2013,aakdfhfdf.xlsx" + "\"");
6
добавлено

Существуют зарезервированные символы и слова , но ',' не является одним из них. Тем не менее я бы воздержался от использования ',' (заменить на '-'). Также, '.' не должен использоваться ни для чего иного, кроме суффикса.

Если вы действительно хотите использовать «,», вы должны указать все имя файла, но не из-за ограничений операционной системы (или файловой системы), а из-за HTTP-заголовков.

2
добавлено