@DefaultHandler
  public Resolution upload() {
    try {
      if (fileData == null || filledFormId < 1) {
        throw new UnsupportedOperationException();
      }
      final FilledForm filledForm = persistance.getFilledFormById(filledFormId);
      final DraftForm form = persistance.getFormById(filledForm.getFormId());
      final FilledFormItem filledFormItem =
          FilledFormManager.getFilledFormItemByItemPosition(filledForm, position);
      final FormVideo formVideo = getFormVideoOrCreateNew(filledFormItem);

      final int siteId = form.getSiteId();
      final SourceVideoFileCreator sourceVideoFileCreator =
          new SourceVideoFileCreator(
              siteId,
              FileNameUtil.createExtension(fileData.getFileName()),
              fileData.getFileName(),
              fileData.getInputStream());
      final Video video = sourceVideoFileCreator.execute();

      persistanceTransaction.execute(
          new PersistanceTransactionContext<Void>() {
            public Void execute() {
              if (formItemName == FormItemName.VIDEO_FILE_UPLOAD) {
                try {
                  video.setFilledFormId(filledForm.getFilledFormId());
                  video.setFilledFormItemId(filledFormItem.getItemId());
                  formVideo.setVideoId(video.getVideoId());
                  FlvVideoManager.getFlvVideoOrCreateNew(
                      video.getVideoId(),
                      video.getSourceWidth(),
                      video.getSourceHeight(),
                      formVideo.getQuality(),
                      video.getSiteId());
                } catch (Exception exception) {
                  logger.log(Level.SEVERE, "Can`t create video file!", exception);
                }
              } else if (formItemName == FormItemName.IMAGE_FILE_UPLOAD) {
                formVideo.setImageId((new CreateFormFileUtil().createFormFile(fileData, siteId)));
              }
              return null;
            }
          });
      ServiceLocator.getPersistanceTransaction()
          .execute(
              new Runnable() {
                public void run() {
                  GalleriesManager.updateVideoFilesForGalleriesThatUseCurentForm(
                      filledForm.getFormId());
                }
              });
    } catch (Exception exception1) {
      try {
        this.getContext().getResponse().getOutputStream().println("-200");
      } catch (Exception exception2) {
        logger.log(Level.SEVERE, "Error while writing file", exception2);
      }
      logger.log(Level.SEVERE, "Error while writing file", exception1);
      return resolutionCreator.forwardToUrl("/SWFUpload/error.jsp");
    }
    return resolutionCreator.forwardToUrl("/SWFUpload/success.jsp");
  }