ホーム > cakephp | 技術系 > cakephp3でファイルをサーバからダウンロード後に削除する方法

cakephp3でファイルをサーバからダウンロード後に削除する方法

cakephp3で、ファイルをサーバからダウンロード後に削除する方法についてのメモ書きです。

Cakephp3で、サーバ上からダウンロードするには

$this->response->withFile(

メソッドが便利ですが、実行した時点でファイルが出力されてしまうので、その後サーバ上のファイルを削除しようとした場合、その後にファイル削除しようとした場合にうまく行かずに困っていました。

Laravelだと、

response()->download($pathToFile, $name)->deleteFileAfterSend(true)

みたいな方法でダウンロード後削除することができるのですが、cakephpではなく、どうしたものかと…。

それで色々調べたところ、cakephpの上記のメソッドを使わずに、PHPに直接記述したダウンロードする方法を取ることで解決しました。

phpに直接書く場合は、

//ファイルダウンロード
header (“Content-disposition: attachment; filename=wa3_db.sql”);
header (“Content-type: application/octet-stream; name=wa3_db.sql”);

 readfile($fileName);

 //ファイル削除
 unlink($fileName);

みたいなかんじで、readfile後に、unlinkすることで対処できました。

コメント:0

コメントフォーム
入力した情報を記憶する

トラックバック:0

この記事のトラックバック URL
https://www.itblog.jp/wp-trackback.php?p=10013
トラックバックの送信元リスト
cakephp3でファイルをサーバからダウンロード後に削除する方法 - ITblog より

ホーム > cakephp | 技術系 > cakephp3でファイルをサーバからダウンロード後に削除する方法

フィード

ページの上部に戻る