TeacherWeeklyStatsReportController.php 994 B

12345678910111213141516171819202122232425262728293031
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Support\TeacherWeeklyStatsReportPaths;
  4. use Illuminate\Http\Response;
  5. use Symfony\Component\HttpFoundation\BinaryFileResponse;
  6. class TeacherWeeklyStatsReportController extends Controller
  7. {
  8. /**
  9. * 浏览器内联打开最近一次生成的周报 PDF(文件名带日期与 His 时间戳)。
  10. */
  11. public function open(): BinaryFileResponse|Response
  12. {
  13. $path = TeacherWeeklyStatsReportPaths::resolveLatestPdfPath();
  14. if ($path === null) {
  15. return response(
  16. '尚未生成周报 PDF。请在后台「老师周报统计」页面点击「生成/刷新周报」,或执行:php artisan report:teacher-weekly-pdf',
  17. 404
  18. );
  19. }
  20. $downloadName = basename($path);
  21. return response()->file($path, [
  22. 'Content-Type' => 'application/pdf',
  23. 'Content-Disposition' => 'inline; filename="'.$downloadName.'"',
  24. ]);
  25. }
  26. }