0

オンザフライで SQL データベースから .SVG ファイルを構築し、それをページに埋め込み、ユーザーがそれを操作できるようにする PHP Web ページを開発中です。これらの一時ファイルは SVG[RandomNumber].svg の形式を取り、unlink 関数はエラー メッセージなしでファイルを正常に削除します。

問題は次のとおりです。ユーザーの SVG ファイルが読み込まれた後にリンク解除機能を呼び出した場合、ユーザーのブラウザーがファイルなどをキャッシュしているため、Web ページは影響を受けないだろうと想定しました。コードにリンク解除コマンドが存在しない場合、すべてが完全に機能します。ただし、どこでも「リンクを解除」すると、Web ページの最後であっても、オブジェクトがまったく表示されなくなります。Firefox ではオブジェクトの痕跡はなく、IE では「Web ページが見つかりません」というエラーが表示されます。

ブラウザがファイルをアップロードする前にファイルを削除しましたか? 一般的な状況に対処する最善の方法は何ですか?

ありがとうございました。

4

1 に答える 1

0

ワークフローを変更し、一時的なものを作成しないと便利な場合があります。画像が一度だけ使用されるか、その生成が大したことではない場合、次の方法でオンザフライで生成を試みることができます

<?php
// We'll be outputting a SVG
header('Content-type: Content-Type: image/svg+xml');

// It will be called image.svg
header('Content-Disposition: attachment; filename="image.svg"');

// Don't cache
header("Cache-Control: no-cache, must-revalidate");
header("Expires: " . date("D, j M Y H:i:s")); 

// The PDF source is in original.pdf
generate_svg_from_db('image.svg');
?>
于 2013-07-29T05:45:46.003 に答える