QQ扫一扫联系
<?php namespace App\Services; use Symfony\Component\HttpFoundation\BinaryFileResponse; class ReportsBase { /** * 写入CSV文件 * @param string $file_name * @param array $arrHeader * @param array $arrDataList * @return array */ public static function writeFile(string $file_name = '', array $arrHeader = [], array $arrDataList = []): array { ini_set('memory_limit', '2048M'); $dir_name = 'export/'; $file_name = $dir_name . sprintf("%s", $file_name . ".csv"); $fileData = implode(',', $arrHeader) . "\r\n"; foreach ($arrDataList as $line) { $fileData .= implode(',', str_replace(',', ' ', $line)) . "\r\n"; } \Storage::disk('local')->put($file_name, mb_convert_encoding($fileData, 'gbk', 'utf-8')); return [ 'file_path' => $dir_name, 'file_name' => storage_path('app/' . $file_name), ]; } /** * 下载文件 * @param $file * @return BinaryFileResponse */ public static function downloadCsv($file): BinaryFileResponse { return response()->download($file)->deleteFileAfterSend(); } }