PHP Laravel을 사용하여 서버 측에서 바코드 QR 코드를 읽는 방법
Windows 및 Linux에 PHP Laravel 설치
PHP 7.4 , Composer 및 Laravel 을 설치합니다.
PHP 7.4
윈도우
php-7.4.30-nts-Win32-vc15-x64.zip
리눅스
sudo apt install php7.4
Composer
달리다 Composer-Setup.exe
리눅스
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '55ce33d7678c5a611085589f1f3ddf8b3c52d662cd01d4ba75c0ee0459970c2200a51f492d557530c71c15d8dba01eae') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
sudo mv composer.phar /usr/local/bin/composer
라라벨:
composer global require laravel/installer
PHP Laravel을 사용하여 서버 측 바코드 QR 코드 읽기를 구현하는 단계
다음 단락에서는 서버 측의 이미지 파일에서 바코드 및 QR 코드를 읽을 수 있는 PHP Laravel 프로젝트를 개발하는 과정을 안내합니다.
1단계: PHP 바코드 QR 코드 리더 확장 프로그램 설치
사전 빌드된 바이너리 패키지가 없습니다. PHP에서 바코드 및 QR 코드를 읽으려면 Windows 및 Linux의 소스 코드에서 build and install the PHP extension 필요합니다.
2단계: Laravel 프로젝트 스캐폴드
확장이 설치되면 새로운 Laravel 프로젝트를 시작할 수 있습니다.
composer create-project laravel/laravel web-barcode-qrcode-reader
위의 명령은 Laravel의 최신 안정 버전을 설치합니다. 호환성 문제를 피하려면 더 나은 방법은 Laravel 버전 번호를 지정하는 것입니다.
php artisan --version
Laravel Framework 8.83.23
composer create-project laravel/laravel:^8.0 web-barcode-qrcode-reader
3단계: 컨트롤러 생성
Laravelcontrollers은 HTTP 요청을 처리합니다. 업로드된 이미지 파일을 처리하고 바코드 및 QR 코드 디코딩 결과를 반환하는 컨트롤러를 만들 수 있습니다.
php artisan make:controller ImageUploadController
이 명령은
ImageUploadController.php
디렉토리에 app/Http/Controllers
파일을 생성합니다. 파일을 열어 다음 코드를 추가합니다.<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Validator;
class ImageUploadController extends Controller
{
function __construct() {
DBRInitLicense("DLS2eyJoYW5kc2hha2VDb2RlIjoiMjAwMDAxLTE2NDk4Mjk3OTI2MzUiLCJvcmdhbml6YXRpb25JRCI6IjIwMDAwMSIsInNlc3Npb25QYXNzd29yZCI6IndTcGR6Vm05WDJrcEQ5YUoifQ==");
DBRInitRuntimeSettingsWithString("{\"ImageParameter\":{\"Name\":\"BestCoverage\",\"DeblurLevel\":9,\"ExpectedBarcodesCount\":512,\"ScaleDownThreshold\":100000,\"LocalizationModes\":[{\"Mode\":\"LM_CONNECTED_BLOCKS\"},{\"Mode\":\"LM_SCAN_DIRECTLY\"},{\"Mode\":\"LM_STATISTICS\"},{\"Mode\":\"LM_LINES\"},{\"Mode\":\"LM_STATISTICS_MARKS\"}],\"GrayscaleTransformationModes\":[{\"Mode\":\"GTM_ORIGINAL\"},{\"Mode\":\"GTM_INVERTED\"}]}}");
}
function page()
{
return view('barcode_qr_reader');
}
function upload(Request $request)
{
$validation = Validator::make($request->all(), [
'BarcodeQrImage' => 'required'
]);
if($validation->passes())
{
$image = $request->file('BarcodeQrImage');
$image->move(public_path('images'), $image->getClientOriginalName());
$resultArray = DecodeBarcodeFile(public_path('images/' . $image->getClientOriginalName()), 0x3FF | 0x2000000 | 0x4000000 | 0x8000000 | 0x10000000); // 1D, PDF417, QRCODE, DataMatrix, Aztec Code
if (is_array($resultArray)) {
$resultCount = count($resultArray);
echo "Total count: $resultCount", "\n";
if ($resultCount > 0) {
for ($i = 0; $i < $resultCount; $i++) {
$result = $resultArray[$i];
echo "Barcode format: $result[0], ";
echo "value: $result[1], ";
echo "raw: ", bin2hex($result[2]), "\n";
echo "Localization : ", $result[3], "\n";
}
}
else {
echo 'No barcode found.', "\n";
}
}
return response()->json([
'message' => 'Successfully uploaded the image.'
]);
}
else
{
return response()->json([
'message' => $validation->errors()->all()
]);
}
}
}
__construct()
방법에서는 Dynamsoft customer portal 에서 얻을 수 있는 유효한 라이센스 키를 설정하여 바코드 SDK 인스턴스를 초기화합니다. 호출DBRInitRuntimeSettingsWithString()
은 기본 설정이 대부분의 경우에 적합하므로 선택 사항입니다.업로드된 이미지는
public/images
디렉토리에 저장됩니다. DecodeBarcodeFile()
방법은 이미지 파일에서 바코드 및 QR 코드를 읽는 데 사용됩니다.다음 단계는
barcode_qr_reader
보기를 만드는 것입니다.4단계: 웹 보기 만들기
barcode_qr_reader.blade.php
디렉토리에 public/resources/views
파일을 생성합니다. 파일에는 양식을 통해 이미지를 업로드하기 위한 HTML5 코드가 포함되어 있습니다.<!DOCTYPE html>
<html>
<head>
<title>PHP Laravel Barcode QR Reader</title>
<meta name="_token" content="{{csrf_token()}}" />
</head>
<body>
<H1>PHP Laravel Barcode QR Reader</H1>
<form action="{{ route('image.upload') }}" method="post" enctype="multipart/form-data">
@csrf
Select barcode image:
<input type="file" name="BarcodeQrImage" id="BarcodeQrImage" accept="image/*"><br>
<input type="submit" value="Read Barcode" name="submit">
</form>
<img id="image" />
<script>
var input = document.querySelector('input[type=file]');
input.onchange = function() {
var file = input.files[0];
var fileReader = new FileReader();
fileReader.onload = function(e) {
{
let image = document.getElementById('image');
image.src = e.target.result;
}
}
fileReader.readAsDataURL(file);
}
</script>
</body>
</html>
CSRF Protection은 양식에 필요합니다. 편리한 방법은
@csrf
Blade 지시문을 사용하여 숨겨진 토큰 입력 필드를 생성하는 것입니다.<form action="{{ route('image.upload') }}" method="post" enctype="multipart/form-data">
@csrf
...
</form>
웹 페이지가 완료되면 한 가지 추가 단계는
public/routes/web.php
에 웹 경로를 추가하는 것입니다.Route::get('/barcode_qr_reader', 'App\Http\Controllers\ImageUploadController@page');
Route::post('/barcode_qr_reader/upload', 'App\Http\Controllers\ImageUploadController@upload')->name('image.upload');
5단계: PHP Laravel 바코드 QR 코드 리더 실행
이제 PHP Laravel 프로젝트를 실행하고 브라우저에서
http://127.0.0.1:8000/barcode_qr_reader
를 방문할 수 있습니다.php artisan serve
소스 코드
https://github.com/yushulx/php-laravel-barcode-qr-reader
Reference
이 문제에 관하여(PHP Laravel을 사용하여 서버 측에서 바코드 QR 코드를 읽는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/yushulx/how-to-read-barcode-qr-code-on-the-server-side-using-php-laravel-4p22텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)