[英]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_PATH
是contents/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.