0

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) であることを確認しました。

私のスタックトレースには、次のものがあります。

| | エラー resource.ResourceMeta - リソースが見つかりません: /tmp/1.jpg

データが見つからないのはなぜですか? アップロードアクションで保存しました。

4

1 に答える 1

0

ファイル システムの /tmp フォルダにファイルを保存しています。フォルダに適切な権限を付与しない限り、このフォルダに保存することはできません。

さらに重要なことに、g:img タグは、grails アプリケーションの web-apps フォルダーの下にある tmp フォルダーでファイルを検索しますが、そこにファイルを保存していないため、そこにはファイルが見つかりません。

于 2012-10-12T10:46:33.770 に答える