首页 > 解决方案 > 使用 Multer [Nodejs] 将图像上传到 Web 服务器目录

问题描述

我正在使用 multer 和 Nodejs 上传图片。上传完美。问题是我想将这些图像直接上传到wwwrootIIS Webserver 文件夹内的文件夹中。

var Storage = multer.diskStorage({
    destination: function (req, file, callback) {
       // callback(null, "../grit-server/uploads/");
       callback(null, "https://example.com/grit/images/photogallery/");
    },
    
    filename: function (req, file, callback) {
        const sqc = sqlConn;
        var fileNames = (file.originalname.split('_'))
        let query = 'INSERT INTO dbo.MS_PhotoGallery (MinorId,Photo_Name) VALUES (@MinorId,@PhotoName)'
        let params = [
            sqc.paramize('MinorId', fileNames[1], sql.Int()),
            sqc.paramize('PhotoName',fileNames[2], sql.VarChar(255))
        ]
       sqc.SqlExecuteStatementCallback(
            query,params,(result)=>{
                res.send(result)
            }
       )
        callback(null, file.originalname);
    }
});

上面的代码是 Multer 存储,我在URL其中设置上传图像的位置。但它抛出错误

'Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client'

我应该做哪些修改来上传URL下面提到的图像Storage以将任何照片保存在该位置。

标签: node.jsexpressmulter

解决方案


我已经解决了这个问题,对路径进行硬编码,例如'../../../../wwwroot/abc/def/'. 这不是有效的方法,但它适用于我的特定问题,因为图像文件夹将来不会改变。


推荐阅读