0

ユーザーが画像のURLを挿入し、フォームを送信して画像をサーバーにアップロードできるようにするテキスト入力のあるフォームがあります。したがって、画像はPNGに変換され、ハッシュで名前を変更し、サーバーディレクトリに保存されますimages/ 。アップロードするコードは次のとおりです。

   if (isset($_POST["cover"])) {
        imagepng(imagecreatefromstring(file_get_contents($_POST["cover"])), "images/".$hash.".png");
   }

問題は、ユーザーが新しい URL から画像を更新しようとしたときです。それは機能せず、目に見えるエラーは発生しません。

画像を更新するフォームには、valueサーバー上の実際の変換およびハッシュされた画像の入力があります。ユーザーが入力 URL を変更して更新フォームを送信すると、サーバー上の現在の画像が上書きされるはずでした。しかし、それは起こっていません。[編集、解決済み。ハッシュに間違った $VARIABLE を使用していました。]

現在、キャッシュの問題が発生しています。ブラウザのキャッシュを消去せずに、フォームを送信した後に更新された画像を表示するにはどうすればよいですか??

4

1 に答える 1

0

ブラウザのキャッシュを強制的にクリアしてみてください

header( 'Expires: Sat, 26 Jul 1997 05:00:00 GMT' ); 
header( 'Last-Modified: ' . gmdate( 'D, d M Y H:i:s' ) . ' GMT' ); 
header( 'Cache-Control: no-store, no-cache, must-revalidate' ); 
header( 'Cache-Control: post-check=0, pre-check=0', false ); 
header( 'Pragma: no-cache' ); 

または画像パラメーターにタイムスタンプを追加します

<img src="image.png?<?php echo(time());?>" />
于 2013-06-27T00:41:54.010 に答える