Html 多文件上传时出现奇怪的瞬时错误

Html 多文件上传时出现奇怪的瞬时错误,html,windows,grails,multifile-uploader,cmultifileupload,Html,Windows,Grails,Multifile Uploader,Cmultifileupload,目前,我正在本地PC上运行grails 2.3.3版,而不是在internet上运行 我正在构建一个多文件上传过程,我的行为只能被描述为“暂时的” 我所说的瞬态是指,它已经正常工作了一段时间,反复成功地上传文件,然后在我没有更改任何代码的情况下开始持续失败 错误是: 错误500:内部服务器错误 URI /VidPlay/fileUpload/saveMK 班 groovy.lang.MissingMethodException 消息 方法org.apache.catalina.core.Appl

目前,我正在本地PC上运行grails 2.3.3版,而不是在internet上运行

我正在构建一个多文件上传过程,我的行为只能被描述为“暂时的”

我所说的瞬态是指,它已经正常工作了一段时间,反复成功地上传文件,然后在我没有更改任何代码的情况下开始持续失败

错误是:

错误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>
当我使用Win 7.0在本地PC上执行所有这些操作时,我可以看到这是一个非常人工的环境,本地机器同时充当客户端和服务器。这让我认为我的问题是某种机器或操作系统资源限制问题

或者,也许有一种更干净的方法可以将文件信息从上传表单中获取到操作中

注意-这种奇怪的行为发生在两个不同的应用程序中-我首先将此文件上载系统引入到一个开发应用程序中,它正常工作了一段时间,然后开始持续失败,出现上面引用的相同错误

欢迎任何建议-提前感谢


-mike

只是一种预感:您是否使用了某种安全插件,行为会根据您是否登录而变化?请登录,但不要使用插件-确保我已登录,但仍然失败。其他帖子建议将请求明确定义为MultipartRequest see:[或multipartttpServletRequest see:[。两者都无法解决-不确定我需要导入什么?但第二篇帖子建议不需要强制转换,请参见Burt Beckwith的评论-不确定该帖子的解决方案是什么?
    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