From cfb6fce0543f2f24d376a7a05addd9bc3310c877 Mon Sep 17 00:00:00 2001 From: fomichev Date: Wed, 4 Jun 2025 14:14:55 +0300 Subject: [PATCH] =?utf8?q?=D0=A1=D0=BE=D1=85=D1=80=D0=B0=D0=BD=D0=B5=D0=BD?= =?utf8?q?=D0=B8=D0=B5=20=D1=84=D0=B0=D0=B9=D0=BB=D0=B0=20=D1=8D=D0=BA?= =?utf8?q?=D1=81=D0=B5=D0=BB=D1=8C=20sendStreamAsFile?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../AutoPlannogrammaController.php | 35 ++++++++++++++----- 1 file changed, 26 insertions(+), 9 deletions(-) diff --git a/erp24/controllers/AutoPlannogrammaController.php b/erp24/controllers/AutoPlannogrammaController.php index d6dad295..de5b59e3 100644 --- a/erp24/controllers/AutoPlannogrammaController.php +++ b/erp24/controllers/AutoPlannogrammaController.php @@ -9,6 +9,7 @@ use yii\data\ArrayDataProvider; use yii\db\Expression; use yii\db\Query; use yii\helpers\ArrayHelper; +use yii\web\Response; use yii_app\records\CityStore; use yii_app\records\MatrixBouquetForecast; use yii_app\records\PricesDynamic; @@ -1437,6 +1438,13 @@ class AutoPlannogrammaController extends BaseController 'group_name' => 'Оффлайн', ];*/ $request = Yii::$app->request; + $this->layout = false; + Yii::$app->response->format = Response::FORMAT_RAW; + + + while (ob_get_level() > 0) { + ob_end_clean(); + } $filters = [ 'category' => $request->get('category'), @@ -1585,18 +1593,27 @@ class AutoPlannogrammaController extends BaseController $rowNum++; } - $filename = 'report_' . date('Ymd_His') . '.xlsx'; + foreach (range('A', 'J') as $col) { + $sheet->getColumnDimension($col)->setAutoSize(true); + } + - header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); - header('Content-Disposition: attachment;filename="' . $filename . '"'); - header('Cache-Control: max-age=0'); - header('Expires: 0'); - header('Pragma: public'); + $tempFile = tempnam(sys_get_temp_dir(), 'xlsx'); + $writer = new Xlsx($spreadsheet); + $writer->save($tempFile); - $writer = new Xlsx($spreadsheet); - $writer->save('php://output'); - Yii::$app->end(); + return Yii::$app + ->response + ->sendStreamAsFile( + fopen($tempFile, 'rb'), + 'report_' . date('Ymd_His') . '.xlsx', + [ + 'mimeType' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', + 'inline' => false, + 'deleteFileAfterSend' => true, + ] + ); } -- 2.39.5