mirror of
https://gitee.com/zoujingli/ThinkAdmin.git
synced 2025-08-24 13:59:47 +08:00
51 lines
1.3 KiB
PHP
51 lines
1.3 KiB
PHP
<?php
|
|
|
|
/*
|
|
* (c) Jeroen van den Enden <info@endroid.nl>
|
|
*
|
|
* This source file is subject to the MIT license that is bundled
|
|
* with this source code in the file LICENSE.
|
|
*/
|
|
|
|
namespace Endroid\QrCode\Bundle\Controller;
|
|
|
|
use Endroid\QrCode\Factory\QrCodeFactory;
|
|
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
|
|
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
|
use Symfony\Component\HttpFoundation\Response;
|
|
use Symfony\Component\HttpFoundation\Request;
|
|
|
|
/**
|
|
* QR code controller.
|
|
*/
|
|
class QrCodeController extends Controller
|
|
{
|
|
/**
|
|
* @Route("/{text}.{extension}", name="endroid_qrcode", requirements={"text"="[\w\W]+", "extension"="jpg|png|gif"})
|
|
*/
|
|
public function generateAction(Request $request, $text, $extension)
|
|
{
|
|
$options = $request->query->all();
|
|
|
|
$qrCode = $this->getQrCodeFactory()->createQrCode($options);
|
|
$qrCode->setText($text);
|
|
|
|
$mime_type = 'image/'.$extension;
|
|
if ($extension == 'jpg') {
|
|
$mime_type = 'image/jpeg';
|
|
}
|
|
|
|
return new Response($qrCode->get($extension), 200, ['Content-Type' => $mime_type]);
|
|
}
|
|
|
|
/**
|
|
* Returns the QR code factory.
|
|
*
|
|
* @return QrCodeFactory
|
|
*/
|
|
protected function getQrCodeFactory()
|
|
{
|
|
return $this->get('endroid.qrcode.factory');
|
|
}
|
|
}
|