更新grails中目录中的用户映像
我的项目目录中有每个用户的图像,比如user1.jpeg、user2.jpeg等等。但是,当我试图更改用户映像时,这是一个错误。我不知道该怎么办。以下是错误信息>>>更新grails中目录中的用户映像,grails,gorm,grails-2.0,Grails,Gorm,Grails 2.0,我的项目目录中有每个用户的图像,比如user1.jpeg、user2.jpeg等等。但是,当我试图更改用户映像时,这是一个错误。我不知道该怎么办。以下是错误信息>>> Cannot cast object 'org.apache.catalina.core.ApplicationHttpRequest@21740230' with class 'org.apache.catalina.core.ApplicationHttpRequest' to class 'org.springframewo
Cannot cast object 'org.apache.catalina.core.ApplicationHttpRequest@21740230' with class 'org.apache.catalina.core.ApplicationHttpRequest' to class 'org.springframework.web.multipart.MultipartHttpServletRequest'
这是我的更新操作>>>
def updateUser = {
String message = ""
MultipartHttpServletRequest mpr = (MultipartHttpServletRequest)request;
CommonsMultipartFile f = (CommonsMultipartFile) mpr.getFile("userPhoto")//getFile("userPhoto");
if(!f.empty) {
def user = User.get(1)
user.avatarType = f.getContentType()
if(user.save()){
def userId = user.id
String username = user.username
println(userId)
String fileName = username + "." + f.getContentType().substring(6)
new File( grailsApplication.config.images.location.toString() ).mkdirs()
f.transferTo( new File( grailsApplication.config.images.location.toString() + File.separatorChar + fileName) )
message = "Here is your updated Information >>> "
render(view: 'userInfo', model: [message: message],)
}else{
message = "Can not Update User !!!"
render(view: 'editUser', model:[message: message])
return;
}
}else {
flash.message = 'file cannot be empty'
}
}
谁能帮我一下吗?我正在使用Grails2.1.0
编辑::
这是编辑用户的视图>>>
<div class="main">
<g:form controller="user" action="updateUser">
User Name : ${username} <br/>
Photo : <input type="file" name="userPhoto" /> <p></p>
<g:hiddenField name="userId" id="userId" value="${userId}"/>
<g:submitButton name="updateUser" value="Update" />
</g:form>
用户名:${username}
照片:
我必须使用
请参见代码中的所有内容都很好,只需在表单标记中添加enctype=“multipart/form data”
,如
<g:form controller="user" action="updateUser" enctype="multipart/form-data">
...
</g:form>
...
您的代码也能正常工作。谢谢您的回复。但是,如果我尝试您的方式,它会显示“无法解析符号'getFile',并且抛出此错误>>>“没有方法签名:org.apache.catalina.core.ApplicationHttpRequest.getFile()适用于参数类型:(java.lang.String)值:[userPhoto]可能的解决方案:getXML(),getPart(java.lang.String),getAt(java.lang.String),getAt(java.lang.String)、getLocale()、getInfo()“仍显示在控制器>>“无法解析符号‘getFile’”,并且在运行时引发此错误>>“无法在null对象上获取属性‘empty’”您建议哪一部分?来自“编程文件上载”部分GRAILS指南的控制器代码和GSP代码。请参阅此问题的公认答案:
<g:form controller="user" action="updateUser" enctype="multipart/form-data">
...
</g:form>