You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何部署到服务器后无法将QR Code图片保存到指定文件夹

问题排查与解决方案
  • 目录权限问题
    本地Windows环境没有严格的目录权限校验,而Linux服务器默认对web运行用户(通常为www-data、apache、nginx)的目录写入权限做了限制。请先确认qrcode/gbrqrcode/目录的权限配置:
    可执行命令给目录开启写入权限:
    # 调整目录权限,允许web用户写入
    chmod 755 qrcode/gbrqrcode/
    # 或者直接将目录所属用户改为web运行用户
    chown www-data:www-data qrcode/gbrqrcode/
    
  • 相对路径匹配问题
    你当前使用的是相对路径存储文件,服务器上PHP脚本的运行工作目录可能和本地环境不一致,导致找不到目标存储目录。建议改用绝对路径拼接:
    // 用__DIR__获取当前脚本所在的绝对路径,再拼接存储目录
    $file = __DIR__ . '/qrcode/gbrqrcode/' . $qrImgName . '.png';
    
  • 目标目录不存在
    空目录通常不会被git、FTP等工具同步上传,很可能服务器上根本不存在qrcode/gbrqrcode/层级目录。可以在生成二维码前增加目录自动创建逻辑:
    $saveDir = dirname($file);
    if (!file_exists($saveDir)) {
        // 第三个参数true表示递归创建多级目录
        mkdir($saveDir, 0755, true);
    }
    
  • 服务端依赖与配置问题
    • 确认服务器已安装php-gd扩展,二维码生成库依赖GD库处理图片
    • 查看PHP配置中的open_basedir项,确认目标存储目录没有被纳入禁止写入的范围
    • 开启PHP错误日志,查看QRcode::png方法执行时抛出的具体错误信息,可快速定位问题

内容的提问来源于stack exchange,提问作者adelle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 22:54:02