1

私は、イベントが次のように発生する必要がある、少しサイズ変更してイメージの種類をダウンロードする php スクリプトに取り組んでいます。

  1. 訪問者が画像ファイルをアップロードします。

  2. 画像はスクリプトによってサイズ変更されます。

  3. サイズ変更された画像へのダウンロード リンクがフロントエンドに表示されます。

私のサイズ変更コードは準備ができて機能していますが、3 番目の部分、つまり、最近作成した画像へのダウンロード リンクを提供する方法について助けが必要です。これは、サイズ変更された画像がphpスクリプトでどのように作成されるかの要点です。

<?php  
       //normal validation stuff happens here
       //resizing stuff happens here

    //here is last part of the code that creates the resized image

    $filename = uniqid();
    $file = 'uploads/'.$filename.'.jpeg';   
    imagejpeg($new, $file, 80); 
    imagedestroy($new);

このダウンロード リンクは、新しいタブを開くのではなく、ダウンロード ボックスとしてプロンプトを表示する必要があります。Headersダウンロードリンクを提供する必要がある場合に備えて、私が知っていることです。しかし、これに対する正しいアプローチを理解していない限り、これは私には役に立ちません。また、これは静的リソースのダウンロード リンクではないため、私の状況は少し異なる場合があることをご理解ください。ここでは、ダウンロードするイメージは、リクエストごとに毎回動的に作成されます。

私は自分で解決策に苦労していますが、それ以外の場合は、どの手順を実行する必要があるか、またはこれを完了するために必要な機能は何かのロードマップを提供してください. 前もって感謝します。

4

2 に答える 2

2

適切なヘッダーを使用してダウンロードを強制できます。

header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.basename($file).'"');
header('Content-Transfer-Encoding: binary');
header('Connection: Keep-Alive');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
于 2013-11-04T13:32:21.963 に答える