У меня есть веб-приложение, которое принимает файл Multipart в качестве входных данных, а затем обрабатывает записи по определенным критериям. После обработки он перенаправляет обратно на домашнюю страницу.
@RequestMapping(method = RequestMethod.POST, value = "/upload")
public String handleDbfUpload(@RequestParam("file") final MultipartFile multipartFile,
@RequestParam("pqr") final String pqr, @RequestParam("lmn") final Long lmn,
@RequestParam("abc") final BigDecimal abc, @RequestParam("xyz") final BigDecimal xyz,
final RedirectAttributes redirectAttributes, final HttpSession session, final HttpServletRequest request)
throws IOException {
if (!multipartFile.isEmpty()) {
try {
final String adUserName = request.getUserPrincipal().getName();
logger.info("Processing the '{}' file", multipartFile.getOriginalFilename());
final ProcessingStatistics processingStats = dbfProcessingService.processDbfFile(multipartFile,
pqr, lmn, abc, xyz, adUserName);
logger.info("Processing in DbfUploadController 11");
session.setAttribute("lmn", lmn);
redirectAttributes.addFlashAttribute("originalFilename", multipartFile.getOriginalFilename());
logger.info("Processing dbf");
} catch (final IOException | RuntimeException ex) {
logger.error("Failed to upload " + multipartFile.getOriginalFilename(), ex);
redirectAttributes.addFlashAttribute("error",
"Failed to upload or process " + multipartFile.getOriginalFilename() + " - " + ex.getMessage());
} catch(Exception e){
logger.error("Exception encountered", e);
}
} else {
redirectAttributes.addFlashAttribute("error",
"Failed to upload " + multipartFile.getOriginalFilename() + " - file was empty.");
}
logger.info("Processing dbf and redirecting now");
return "redirect:/";
}
}
Файл прекрасно обрабатывается в Chrome, но не работает в Firefox.
Наблюдение:
В Firefox File получает загрузку и успешно обрабатывается. Он печатает последнюю строку журналов и перед redirect снова начинает загрузку файла.
Весь контроллер вызывается, и Firefox выдает «Сбой безопасного соединения» в пользовательском интерфейсе при попытке его второй автоматической загрузки.
Принимая во внимание, что в Chrome он работает нормально и не загружает файл снова.