0

ユーザーがアップロードした画像を変換する Web アプリケーションを開発しています。ユーザーが画像を変更すると、画像は別の名前でサーバーに保存され、img タグのようにクライアントに再度提供されます。前の画像に戻るときに問題があります。実際の画像は削除され、新しい画像が前の画像になります。しかし、ユーザーが再度変更すると、表示される画像は新しい画像ではなく、戻る前に削除された画像になります。ただし、表示されている画像は存在しません。ブラウザによってキャッシュされていると思いますが、これを防ぐ方法がわかりません。

例:

$image1 = imagefirst.jpg
$image2 = imagechanged.jpg

//Going back:

$image3 = imagefirst.jpg
//imagechanged.jpg is deleted

//change again the image
$image4 = imagechanged.jpg

//serve to the client
<img src="imagefirst.jpg">    

//the image shown isn't the new one saved in the server, but the image deleted previously.
4

2 に答える 2

2

この問題の簡単な解決策は、画像にランダムな文字列を追加して、ブラウザに毎回新しい画像を要求させることです。この目的のために、、、uniqid()またはrand()を使用できます。time()

echo "<img src='imagefirst.jpg?version=".time()."'/>";        

これにより、次のような出力が生成されます。

<img src='imagefirst.jpg?version=1378811671' />

クエリ文字列は一意であるため、画像はブラウザには異なって表示されます。

于 2013-09-10T11:06:36.673 に答える