1

画像を(imagickで)レンダリングし、それをいくつかのディレクトリに保存してから"SITE_ROOT.$filePath"header('Location: ' . SITE_ROOT.$filePath)リダイレクトするファイルはpng画像です。

URLバーに入力するだけでパスに直接移動すると、画像を保存でき、すべて正常に動作しますが、スクリプトを使用してリダイレクトし、右クリックして画像を保存しようとすると、画像は保存されません実際に画像を保存しようとしていることを認識し、スクリプトページの名前である「ドライバー」と呼ばれるタイプのないファイルとして保存しようとしていると考えます。

ここで何が問題なのかわかりません。確かに、ヘッダーの場所は画像に移動するだけで、リダイレクト後に「ドライバー」ファイルの記録はありませんか?

redirect()あまりにもbtwでも同じことが起こります。

助けてくれてありがとう!

編集:この問題はdie()、ヘッダー コマンドの後に a を配置することで解決されました。

4

2 に答える 2

5

ヘッダーの場所で機能していないファイルパスを使用しています。あなたはURLを使うことになっています。

ヘッダーの場所に絶対URLを使用することをお勧めします。PHPのドキュメントによると:

HTTP / 1.1では、引数として絶対URIが必要です»場所:スキーム、ホスト名、絶対パスを含みますが、一部のクライアントは相対URIを受け入れます。(出典

また、特定の状況での私の経験では、リダイレクトの後に来るコードがまだ実行される可能性があるため、必ず後でスクリプトを終了してください。したがって、良い例は次のようになります。

header("location:http://www.mysite.com/path/to/myfile.php");
exit;

多くの場合、この場合はサーバー変数を使用します。

$url = $_SERVER["HTTP_HOST"]."/path/to/myfile.php";
header("location:".$url);
exit;

乾杯!

于 2010-08-19T09:01:09.957 に答える
1

header('Location:'。$ filePath);

SITE_ROOTは、サーバー上のhtdocsディレクトリの場所です。ただし、ヘッダーの場所は、htdocsディレクトリからの相対的なファイルへのパスである必要があります

于 2010-08-19T08:09:49.217 に答える