2012-02-22 27 views
1

私はplayframework-1.2.3を使用していると私は、データモデルは、次のようになります:playframeworkに画像の添付ファイルを表示する最も良い方法は?

public class Item extends Model { 
    ... 
    public Blob img; 
} 

画像が無いの拡張子で保存されている(ように "0f4fb5da-ed95-4c22-b3ec-725489285848")で私のシステム。

は、私がイメージこの方法は、家庭教師を追っ表示:

<img src="@{items.getImg(i.id)}" height="210px"/> 

しかし、私はそれを表示するたびにコントローラを要求されていませんしたい、私は静的ファイルのリンクを持つ画像を表示できるようにする方法はありますか?

これは2つのステップを必要とする可能性があります。 1.拡張子付きの保存イメージ。 2./publicの添付ファイルディレクトリを変更します。

だから、誰でも助けてくれますか?

+0

私はコントローラを介してその表示画像を疑うが、サーバーが過負荷状態になり、正しいということでしょうか? – MrROY

答えて

1

コントローラ経由で実際に問題がありますか?これは実際には、より抽象度の高いレベルを提供します。

ただし、静的に行う場合は、画像をパブリックフォルダに移動するのではなく、新しいstaticDirルートを作成することができます。たとえば、

GET /img/    staticDir:usrImages 

これらの画像を見ることができる人以上のセキュリティが必要な場合は、このような公開アクセス方法を使用することには注意が必要です。コントローラを使用すると、セッションチェックを実行して、ユーザーがイメージを表示するための適切なアクセス権を持っていることを確認できます。

編集 - 私はこの上でピーター・ヒルトンさんのブログを読んでお勧めします - http://www.lunatech-research.com/playframework-file-upload-blob

+0

私は、コントローラーを介して表示される画像がサーバーに過負荷をかけるのではないかと疑問に思っています。さらに、現在の実装では拡張子が付けられていないので、画像を拡張子で保存する方法を知る必要があります。 – MrROY

+0

この操作は十分なオーバーヘッドを追加するのに十分なほど高価です。拡張機能としては、ファイルがアップロードされるときに、Fileオブジェクトを使用して元のファイル名も保存することをお勧めします。 Peter Hiltonはこのトピックについての良いブログを書いています... http://www.lunatech-research.com/playframework-file-upload-blobを参照してください – Codemwnci

+0

私は以前このトピックを見ましたが、** src = "@ {userPhoto(user.id)} "**画像も表示されます。 ** src = "/ photos/xxxx.png" **が必要です。 – MrROY

関連する問題