簡體   English   中英

Laravel中如何將生成的二維碼存為PNG格式存入數據庫

[英]How to store a generated QR code as PNG into the database in Laravel

大家好,我是 Laravel 的新手。我已經用 QrCode 做了一個小項目大約一個月了。

所以我的問題是:“如何將生成的二維碼存儲到 Laravel 中的數據庫中?”

我創建了一個 function,它將創建隨機字符串(充當我資產的唯一 ID)並轉換為二維碼。 我的下一步行動是將二維碼圖像放入我的數據庫中。 我一直在關注很多 Laravel 教程,但它只是關於上傳圖像而不是保存自動生成的圖像。

我確實將二維碼圖像保存在公共文件夾中,但每次創建新二維碼時它都會被覆蓋。

這就是我創建隨機字符串並將它們轉換為二維碼並保存的方式

$rs = md5(time(). mt_rand(1,100000));
    $assets = Input::all();
    $assets = new Assets;
    $assets->assets_name = Input::get('assets_name');
    $assets->assets_random_string = $rs;


    $assets->save();

    $file = public_path('qr.png');
    \QRCode::text($rs)->setOutFile($file)->png(); 

    return redirect('assets/list')->with('assets', $assets)

如果我在現有代碼中做錯了什么,請發表評論,以便我改進我的代碼。 如果您需要我的項目中的任何內容,請告訴我。

太感謝了!

歡迎任何幫助!

保存到數據庫中QR碼的內容並按需生成QR碼,這應該是最好的方法。

正確的方法和最優化的方法是將文件路徑保存到數據庫中的qr.png。 一旦您需要顯示您的QR碼,您只需從您的數據庫中提取路徑並將其附加到HTML img標記。

$rs = md5(time(). mt_rand(1,100000));
$assets = Input::all();
$assets = new Assets;
$assets->assets_name = Input::get('assets_name');
$assets->assets_random_string = $rs;

$path = 'images/';
if(!\File::exists(public_path($path))) {
    \File::makeDirectory(public_path($path));
}
$file = $path . time() . '.png';
\QrCode::format('png')->generate($rs, $file);
$assets->file = $file;

$assets->save();

I hope it will works,it works for me.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM