2012-06-21 11 views
7

ログインするたびに(ログインフォームの中で)自分のプロフィール画像を見ることができるように、自分のユーザーの小さなプロフィール画像をブラウザに保存したい例)。私はhotmailが似たようなことをしていると思います。画像をクッキーに保存する

イメージをユーザーのコンピュータに保存し、そのパスをクッキーに保存することはできますか?クッキーの最大サイズは4096 Bytesなので、イメージ自体をクッキーに保存するのは難しいかもしれません。どのように私はそれを行うことができる任意のアイデアをお持ちですか?

答えて

11

は、確かにそれはクッキーにオンライン画像へのリンクを格納するために、よりefficentだし、代わりにそれを使用しますか?

ウェブページを閲覧するたびに、クッキーが送信されます。画像を保存すると、不要な帯域幅が追加されます。

+0

イメージを送信するたびにオーバーヘッドが余分に追加されるため、localStorageに保存するとこれは起こりません。 –

8
+0

これは素晴らしいです!これにより、イメージをローカルに格納し、ネットワークとサーバーの使用を減らすことができます。残りの問題は、バイナリイメージをbase64でエンコードする必要があることですが、phpは簡単にそうするようです:[base64_encode()](http://php.net/manual/en/function.base64-encode.php)。 – Mick

+3

キャッシングは、ほぼ20年間HTTPプロトコルに組み込まれています。なぜそれを再現したいのですか?あなたのイメージファイル用にいくつかのキャッシュヘッダーを送信し、標準の ''要素を使ってそれらを通常のファイルとして提供してください。 –

+0

いいですね:-) JSでしかできませんか? (自分のプロジェクトで) –

4

あなたはクッキーにイメージへのパスを格納し、ログイン画面でそれをレンダリングするために値を使用してもらえますか?

+0

どうすればいいですか? – User1999

4

なぜサーバーに画像を保存し、そのパスをCookieに保存したくないのですか?

これは、より多くのsituableに見え、その後、ユーザーのコンピュータ上の追加データを書き込む...

+0

イメージを毎回送信すると、不必要にオーバーヘッドが増えます。これをlocalStorageに格納すると、これは起こりません。 –

+0

@ジャスパーモグ画像が見られた場合はブラウザでキャッシュする必要がありますので、追加送信する必要はありません。 – DaneSoul