Странная временная ошибка при загрузке нескольких файлов

На данном этапе я использую Grails версии 2.3.3 на локальном ПК, а не в Интернете.

Я создаю многофайловый процесс загрузки, и у меня есть то, что можно описать только как "временное" поведение с этим.

Под переходным процессом я имею в виду, что какое-то время он работал корректно, многократно загружая файлы успешно, а затем начинает последовательно терпеть неудачу, не меняя какой-либо код.

Ошибка:

Ошибка 500: Внутренняя ошибка сервера URI /VidPlay/fileUpload/saveMK Класс groovy.lang.MissingMethodException Сообщение Нет подписи метода: org.apache.catalina.core.ApplicationHttpRequest.getFileNames() применимо для типов аргументов: () значения: [] Возможные решения: getHeaderNames(), getMimeTypes()

Вот обзор кода - во-первых, HTML-код для формы загрузки:

            <g:uploadForm action="multiFileSave" name="mikeK">
            <fieldset class="buttons">
                <span class="pageHeader"><g:message code="Upload a New Picture" /></span>
            <g:submitButton name="Save" onclick="fileUpload.selectButton()" class="buttons" value="${message(code: 'default.button.save.label', default: 'Save')}" />
            </fieldset>
            <tr class="prop">
            <td valign="top" class="name">
                <label class="uploadFile" for="payload">File:</label>
            </td>
            <td valign="top">
              <input type="file" id="file" name="file[]" multiple/>
            </td>
          </tr>

        </g:uploadForm>

Вот действие контроллера, которое обрабатывает загрузку или передачу:

    request.getFileNames().each{

        log.debug(  "getFileNames getFile: ")

        //for(  file in request.getFiles(it))

        request.getFiles(it).each
        { file ->

            // loop through all files selected
           log.debug( "multiFileSave - name: $file.name Originalfilename: $file.originalFilename contentType: $file.contentType")
          try{
               file.transferTo( new File( userDir, file.getOriginalFilename()))
               upFiles = upFiles + " " + file.originalFilename
               def pictId = PicturesShr.findByName(file.originalFilename)
               if(pictId) multiFileLst= multiFileLst + "|" + pictId.id                  
          }
          catch (Exception eWrite)
          {
             log.debug ("File Transfer error files: file.originalFilename Error: ${eWrite.toString()}")
             flash.message = flash.message + "File Transfer error files: file.originalFilename Error: ${eWrite.toString()}"
             failFiles = failFiles + " " + file.originalFilename
          }
       } // getFiles loop
    } // getFileNames loop

Поскольку я делаю все это на локальном ПК с использованием Win 7.0, я вижу, что это очень искусственная среда с локальной машиной, действующей как клиент и сервер одновременно. Это заставляет меня думать, что моя проблема связана с ограничением ресурсов компьютера или операционной системы.

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

Обратите внимание - это странное поведение происходило в двух отдельных приложениях - я сначала ввел эту систему загрузки файлов в приложение для разработки, и она некоторое время работала правильно, а затем начал последовательно терпеть неудачу с той же ошибкой, приведенной выше.

Буду рад любым предложениям - заранее спасибо.

-Майк

0 ответов

Другие вопросы по тегам