簡體   English   中英

生成后如何將二維碼圖像保存到服務器文件夾? - PHP

[英]How to save QR code image to server folder once generated ? - PHP

我正在嘗試為注冊我網站的每個用戶生成二維碼。 我將通過電子郵件向他們發送二維碼,他們可以使用該二維碼進行登錄。 做了一些研究工作,我找到了phpqrcode 我嘗試了以下代碼行,它將二維碼圖像的名稱保存在數據庫中,但沒有將其圖像保存到文件夾中。 如何將 QR 圖像保存到任何文件夾中(例如:上傳)。 所以一旦圖像上傳到文件夾中,我就可以輕松地將該圖像發送給用戶。

因此,在提交注冊表時,將調用以下控制器並保存用戶並為該用戶生成唯一的二維碼。

注冊控制器.php

$user = \Model\User::loadFromPost();

if($user->save()){

    $tempDir = $_SERVER['SERVER_NAME'].UPLOAD_PATH . 'qrcodes/';
    $codeContents = $user->email;
    $fileName = $user->id.md5($codeContents).'.png';
    $pngAbsoluteFilePath = $tempDir.$fileName; 
    if (!file_exists($pngAbsoluteFilePath)) { 
        QRcode::png($codeContents, $pngAbsoluteFilePath); 
        $user->qrcode = $fileName;
        $user->save();
    } else { 
        echo 'File already generated! We can use this cached file to speed up site on common codes!'; 
        echo '<hr />'; 
    }
}

這里$_SERVER['SERVER_NAME']example.local/ (對於本地)和https://www.example.com/ (對於實時服務器)和UPLOAD_PATHcontents/images/uploads 上面的代碼,將二維碼圖片文件的名稱保存在DB中,但沒有將二維碼圖片保存到uploads文件夾中。

幫助表示贊賞。 謝謝。

您不能將域作為絕對路徑。 絕對路徑必須是您服務器上的路徑。 所以,更換

$tempDir = $_SERVER['SERVER_NAME'].UPLOAD_PATH . 'qrcodes/';

帶有格式的路徑,例如

$tempDir = __DIR__.DIR_SEPARATOR.UPLOAD_PATH.DIR_SEPARATOR.'qrcodes/';

當然,您需要根據您的服務器設置修改路徑,但 __ DIR __ 包含當前文件目錄的路徑。

如果你能指定你正在處理的框架,我可以幫你修改路徑。

暫無
暫無

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

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