1

ユーザーがファイルをダウンロードできるシステムを開発していますが、ファイルをダウンロードした場合は、このアクションを特別な目的のテーブル (MySQL) に記録したいと考えています。

適切なファイルへのリンクを含むアイコンを既に生成できますが、アイコンをクリックしてファイルをダウンロードする記録をログ記録にも作成する方法がわかりません。

ボタンを使用し、ボタンのアクションを実行するように設定する必要があると思います...何ですか?コントローラー アクション、ヘルパー関数、その他...

本当に頭が回らないのは最後のビットです。同様のことを実装した可能性のある人からのアドバイスをいただければ幸いです。

bw

4

1 に答える 1

3

あなたは正しい考えを持っています。データベースとログに書き込み、ファイルをロードしてユーザーに表示するコントローラーアクションへのリンク。

例:

class MyController extends AppController {

    // Load the model
    public $uses = ('DbTable');

    public function get_file() {
        // Save the DB record
        $this->DbTable->save(...);

        // Set the output header for content delivery 
        // (use the appropriate mime-type for your file)
        header('Content-Type: image/jpg');

        // Have it download as if it were an attachment
        header('Content-Disposition: attachment; filename="filename.jpg"');

        // Print out the file contents
        echo file_get_contents('/path/to/filename.jpg');

        // Prevent any further processing or rendering
        exit();
    }
}
于 2013-05-29T10:41:45.120 に答える