/**
   * Submits the application with newly added images.
   *
   * @param appNo
   * @param ra
   * @param appDetailsForm
   * @param errors
   * @return application detail screen.
   */
  @RequestMapping(value = "detail/{appNo}", method = RequestMethod.POST)
  public String uploadMore(
      @PathVariable String appNo,
      RedirectAttributes ra,
      @ModelAttribute @Validated(UploadInformationData.class) ApplicationDetailDTO appDetailsForm,
      BindingResult errors,
      @AuthenticationPrincipal OsaUser osaUser) {

    if (errors.hasErrors()) {
      // This is to preserve the validation results in case of redirection.
      ra.addFlashAttribute(APPDETAIL_MODEL_ATTRIB_KEY, appDetailsForm);
      ra.addFlashAttribute(BINDING_RESULT_KEY + APPDETAIL_MODEL_ATTRIB_KEY, errors);
      return "redirect:/detail/" + appNo;
    }

    if (uploadService.uploadMoreImages(appDetailsForm, osaUser)) {
      MessageHelper.addSuccessAttribute(ra, "upload.success", appDetailsForm.getAppNo());
    } else {
      MessageHelper.addErrorAttribute(ra, "upload.error");
    }

    return "redirect:/detail/" + appNo;
  }