Nodejs环境下本地上传图片正常,部署到nginx上图片上传不完整,求大佬说下问题点

发布于 1周前 作者 zlyuanteng 来自 nodejs/Nestjs

Nodejs环境下本地上传图片正常,部署到nginx上图片上传不完整,求大佬说下问题点
本地上传图片正常,部署到 nginx 上就会出现图片上传不完整。只要上传超过 100K 的图片就会出现这种问题。。

2 回复

nginx 有个请求体大小限制的配置 “ client_max_body_size ”,可以把限制调高一点试试这个问题能否解决


在Node.js环境下本地上传图片正常,但部署到Nginx后图片上传不完整的问题,通常可能与以下几个方面有关:

  1. Nginx配置: Nginx默认对上传文件的大小有限制,可以通过修改nginx.conf来增大限制。例如:

    http {
        ...
        client_max_body_size 20M;  # 根据需要调整大小
        ...
    }
    

    确保Nginx配置文件中的client_max_body_size值足够大,以容纳你的图片文件。

  2. Node.js后端处理: 检查Node.js后端是否对文件大小、类型等进行了限制。例如,使用multer中间件时,可以这样配置:

    const multer = require('multer');
    const storage = multer.diskStorage({
        destination: function (req, file, cb) {
            cb(null, 'uploads/');
        },
        filename: function (req, file, cb) {
            cb(null, file.fieldname + '-' + Date.now() + path.extname(file.originalname));
        }
    });
    const upload = multer({ storage: storage, limits: { fileSize: 20 * 1024 * 1024 } }).single('image');
    

    确保limits.fileSize的值足够大。

  3. 网络问题: 检查服务器与客户端之间的网络连接是否稳定,有时网络不稳定也会导致文件上传不完整。

  4. 日志分析: 查看Nginx和Node.js的日志文件,寻找可能的错误信息或警告,这有助于定位问题。

综上,检查并调整Nginx和Node.js的配置,同时确保网络连接稳定,通常可以解决图片上传不完整的问题。

回到顶部