2013-02-14 51 views
3

我使用grails 1.3.7,我有一个奇怪的bug。 这是我上传文件代码:Grails上传文件异常,由springsecurity引起

def editAvatar = { 
      def uploadedAvatar = request.getFile("uploadedAvatar"); 
    if(!uploadedAvatar?.isEmpty()) { 
     clientService.saveUploadedAvatar(uploadedAvatar, basePath); 
     render 'avaterUdated'; 
    } else { 
     render(contentType:"text/json", encoding:"UTF-8") { 
      [valid:false, error: "some error"] 
     } 
    } 

在开发环境中的所有作品完美,但在生产模式我有thiw例外:

org.codehaus.groovy.runtime.typehandling.GroovyCastException: 
Cannot cast object '[email protected]'with class 'org.springframework.security.web.firewall.RequestWrapper' to class 'org.springframework.web.multipart.MultipartHttpServletRequest' 
at ru.pscb.web.grb.ui.UserProfileController$_closure6.doCall(UserProfileController.groovy:80) 

我也tryied验证码:

MultipartHttpServletRequest mpr = (MultipartHttpServletRequest)request; 
    def uploadedAvatar = request.getFile("uploadedAvatar"); 

但它不工作。

我使用sprigsecurity-core1.2和grails 1.3.7 /我无法升级它。

感谢您的任何回应

回答

1

感谢你 - 4年后,你刚刚救了我。在您的代码中,问题似乎是您要将请求投射到MultipartHttpServletRequest,但您并未将uploadAvatar设置为此演员版本的请求(mpr)。尝试将您的最后一行代码更改为:

def uploadedAvatar = mpr.getFile("uploadedAvatar"); 

感谢您的帮助!

+0

太棒了!谢谢! – Mikhail 2018-01-09 17:59:00