0

設定したいくつかのパラメーターに基づいて PNG メールを生成する generate.php という PHP ファイルがあります。画像は、たとえば、「myString」テキストの画像を返す which を使用して表示できます。

次に、ユーザーが画像をダウンロードできるリンクを追加したいと思います。

次のコードでファイル download.php を作成しました。

header('Content-disposition: attachment; filename=string.png');
header('Content-type: image/png');
readfile('generatePicture.php?string=' . $_REQUEST["string"]);

しかし、pngファイルをダウンロードしている間、ダウンロードできないようです。助言がありますか?

4

3 に答える 3

0

PHP ファイルを readfile() すると、そのソースが表示されます。以下に、この問題を解決するための私の方法を示します。

次のように仮定しgeneratePicture.phpます。

<?php
$im = imagecreatetruecolor($w, $h);
// work with the picture
header('Content-type: image/png');
imagepng($im);
?>

download.php...次の方法で統合できます。

<?php
$im = imagecreatetruecolor($w, $h);
// work with the picture

if(isset($_GET['download']))
    header('Content-disposition: attachment; filename=string.png');

header('Content-type: image/png');
imagepng($im);
?>

にリンクする代わりにdownload.php?string=loremipsum、にリンクするようになりましたgeneratePicture.php?string=loremipsum&download=1

それが役に立てば幸い。

于 2013-07-25T15:08:58.107 に答える
-2

セッションのロック。最初のスクリプトを使用する 2 つのスクリプトがある場合session_start()、セッションのキャッシュを開いてロックします。2 番目のスクリプトは、キャッシュを開く前に最初のスクリプトが完了するまで待機する必要があります。

ユーザーのセッションを独占したくない長時間実行されるスクリプトがある場合はsession_start()、そのスクリプトを呼び出さないかsession_write_close()、セッション データの処理が完了してから長時間実行操作を開始する前に呼び出します。 .

それか、2 つの異なるブラウザーを使用して 2 つの別々のセッションを開きます。

于 2013-04-29T19:51:46.157 に答える