2012-02-20 13 views
0

私はユーザープロファイルの画像コントロールを開発しています。このコントロールを使用すると、ユーザーは自分のカスタム画像をアップロードして、ページの隅に小さなサムネイルとして表示されます。 FancyBoxを使ってフルサイズの画像を表示しています。 新しい画像がアップロードされると、FancyBoxは元の画像と同じ大きさの新しい画像を表示します。JQuery FancyBox - 上書きされた画像を表示する

この問題は、各画像アップロードで新しいURLが生成されても、ユーザーのIDに基づいて画像URLが取得されている場合は存在しません。例:url = "../ profileImages/user_3.jpg" つまり、新しいプロファイルイメージをアップロードすると、現在のイメージが上書きされます。

あなたの専門家の中には、「../profileImages/user_3.jpg?value=123」のようなURLにクエリパラメータを追加しようとしましたが、動作しません。

私が使用しているコードをすべて使用していない限り、私は問題を完全に示す裸の骨の例を作成しました。

<html> 
<head runat="server"> 
<title></title> 
<script src="../jquery-1.6.2.js" type="text/javascript"></script> 
<script src="../fancybox-1.3.4.js" type="text/javascript"></script> 
<script src="../fancybox-1.3.4.pack.js" type="text/javascript"></script> 
<link href="../jquery.fancybox-1.3.4.css" rel="stylesheet" type="text/css" /> 

<script> 
$(document).ready(function() 
{ 
$("#example").fancybox() 
}); 
</script> 
</head> 
<body runat="server"> 
<div> 
<a id="example" href="TestImg.jpg"><img alt="example" src="TestImgThumb.jpg" /></a> 
</div> 

</body> 
</html> 
  1. 2枚の画像を作成します。あなたがスケールのストレッチの問題をもっときれいに見ることができます。 最初の画像が最初の画像よりもはるかに大きくなっていることを確認してください。TestImg.jpg

  2. ブラウザでWebページを開き、FancyBoxで画像を表示します。

  3. は今最初の画像を削除し、第二に(小さい)画像の名前を変更:問題を確認するために、再度あるtestimg.jpg

  4. オープンWebページを。ハイパーリンクの画像は正常ですが、FancyBoxがレンダリングする画像は元の画像の寸法に引き伸ばされます。

さらに詳しい説明が必要な場合は、私は喜んでお待ちしています。

+0

イメージはキャッシュされますが、ページをリロードすると起こりませんか? – JFK

+0

イメージキャッシュの問題では、ブラウザに同じURLが表示され、キャッシュされたイメージが表示されるため、新しいアップロードされたイメージは表示されません。新しいアップロードされた画像は表示されていますが、元の画像のサイズに引き伸ばされているので、それは私の問題ではありません。 – RichardB

+0

誰もこの問題に対する答えはありません!! – RichardB

答えて

0

通常、サムネイルの画像にタイムスタンプが付いた画像を作成します。例:[UserId_yyyyMMdd_hh_mm_ss] .jpgを入力して、それを自分のデータベースに保存します。また、ファイルシステムの元のファイルを上書きして後で操作できるようにしますが、配信するイメージはデータベースに一意の名前で保存したものです。

イメージURL(またはイメージ)をデータベースに格納しないようにしたいと思われるため、キャッシュの問題が発生しています。これらの種類の画像については、ユーザーIDだけを使用するのは良い考えではありません。キャッシュ問題に遭遇するため、良いアイデアではありません。

関連する問題