Grails:用户头像上传者

时间:2012-10-11 13:11:23

标签: grails upload image-uploading

我的Grails应用程序中的每个用户都有个人资料,希望他们能够上传个人资料照片。因此我在视图中创建了一个uploadForm:

<g:img dir="tmp" file="1.jpg"/>
<g:uploadForm action="upload">
    <input type="file" name="myFile" />
    <input type="submit" />
</g:uploadForm>

如您所见,我只想用ID = 1显示用户的个人资料图片。

上传操作:

def upload() {
    def f = request.getFile('myFile')
    if (f.empty) {
        flash.message = 'file cannot be empty'
        render(view: 'uploadForm')
        return
    }
    f.transferTo(new File('/tmp/'+springSecurityService.currentUser.id+'.jpg'))
    flash.message = 'file in /tmp/'+springSecurityService.currentUser.id+'.jpg'
    redirect action: 'edit', id: springSecurityService.currentUser.id
}

我的问题是,ID = 1用户的个人资料图片没有显示。我检查过它具有正确的值(ID = 1)。

在我的堆栈跟踪中,我有以下内容:

  

| ERROR resource.ResourceMeta - 找不到资源:/tmp/1.jpg

为什么不能找到数据?我已将其保存在上传操作中。

1 个答案:

答案 0 :(得分:0)

您正在将文件保存到文件系统中的/ tmp文件夹。除非您已为该文件夹授予了适当的权限,否则您将无法保存到此文件夹。

更重要的是,g:img标记在grails应用程序的web-apps文件夹下的tmp文件夹中搜索文件 - 它永远不会在那里找到文件,因为你没有在那里保存它。