0

ローカルの Tomcat サーバーにデプロイすると正常に動作する単純な Grails アプリケーションがあります。ただし、Cloudfoundry にデプロイすると、データベースに保存された画像が表示されません。解決策についてグーグルで調べたところ、Cloudfoundryではローカルファイルシステムを使用して画像ファイルを保存できない(または使用できない)ことが明らかになりましたが、データベースを使用してコントローラーのメインメモリ(出力ストリーム)に書き込んでいます。誰でも助けて。

コードの一部を次に示します。

// 画像ドメイン クラス

class Picture {
    byte[] image
    String mimeType
    String name
    static belongsTo = ...

    static constraints = {
        name(maxSize:20, )
        image(maxSize:3145728)
        ....
    }
    String toString(){
        ...
    }
}


//Picture controller
def image = {

    def picture = Picture.get(params.id)

    if(!picture || !picture.image){
        ...
    }
    else{
        response.setContentType(picture.mimeType)
        response.setContentLength(picture.image.size())
        OutputStream out = response.getOutputStream();
        out.write(picture.image);
        out.flush();
        out.close();
    }
}

//私の gsp < img width="128" height="96" class="image" src="${createLink(controller:'picture', action:'image', id:pictureInstance.ident())} " />

ありがとうございました。

4

1 に答える 1

2

クエリに問題があるようです。データベースを postgreSql から MySQL に変更して、問題が引き続き発生するかどうかを確認してください。ここでの問題が RDBMS サービスにあるとは思えません。

于 2013-01-15T00:41:16.203 に答える