0

一時ファイルが更新されたときにファイルの内容が更新されなかったため、PDFファイルを一時ファイルに保存したくないので、次のように「キャッシュなし」を使用しようとしました(この機能を使用する前にファイルをクリアしました)

<?php
// Expires in the past
header("Expires: Mon, 26 Jul 1990 05:00:00 GMT");
// Always modified
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
// HTTP/1.1
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
// HTTP/1.0
header("Pragma: no-cache");
?>

ただし、pdf ファイルはまだ一時ファイルに保存されているため、pdf の内容は更新されませんでした。私はphp 5.2を使用しており、IEブラウザを使用しています。このコードまたはその他の方法に問題がある場合は、たとえば、Web ページにアクセスするたびにキャッシュをクリアします。

ダウンロードファイルページのトップに置いています

<?php
// Expires in the past
header("Expires: Mon, 26 Jul 1990 05:00:00 GMT");
// Always modified
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
// HTTP/1.1
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
// HTTP/1.0
header("Pragma: no-cache");
?>
<?php  // $Id: view.php,v 1.61 2007/01/27 19:14:23 skodak Exp $

require_once("../../config.php");
require_once("lib.php");

$id = optional_param('id', 0, PARAM_INT);    // Course Module ID
$r  = optional_param('r', 0, PARAM_INT);  // Resource
.................................................
...............................................
.............................
?>
4

1 に答える 1

1

PHP が実行されていることを確認しましたか?

このコードの先頭に挿入してみてecho "foo"; exit()、PDF ファイルをダウンロードできるかどうかを確認してください。ダウンロードできる場合は、コードが実行されておらず、キャッシュ制限が機能していません。

また、プロキシ サーバーを使用している場合は、知らないうちにファイルがキャッシュされている可能性があります。ファイルの名前を変更して、古い場所からダウンロードしてみてください。それでも動作する場合は、サーバーに問題はありません。

于 2013-05-28T09:18:13.420 に答える