我使用 grails 1.3.7 并且有一个奇怪的错误。 这是我上传文件的代码:
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"]
}
}
在开发环境中一切正常,但在生产模式下我有异常(exception):
org.codehaus.groovy.runtime.typehandling.GroovyCastException:
Cannot cast object 'org.springframework.security.web.firewall.RequestWrapper@1ce4ded'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)
我也尝试过这段代码:
MultipartHttpServletRequest mpr = (MultipartHttpServletRequest)request;
def uploadedAvatar = request.getFile("uploadedAvatar");
但这也不起作用。
我使用 sprigsecurity-core1.2 和 grails 1.3.7/我无法升级它。
感谢您的回复
最佳答案
谢谢你 - 四年后,你救了我。在您的代码中,问题似乎是您将请求转换为 MultipartHttpServletRequest
但随后您没有将 uploadAvatar 设置为请求的此转换版本 (mpr)。尝试将最后一行代码更改为:
def uploadedAvatar = mpr.getFile("uploadedAvatar");
感谢您的帮助!
关于spring - Grails上传文件异常,由springsecurity引起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14871978/