使用 Multer [Nodejs] 将图像上传到 Web 服务器目录

时间:2021-07-14 16:17:25

标签: node.js express multer

我正在使用 multer 和 Nodejs 上传图片。上传工作完美。问题是我想将这些图像直接上传到 IIS 网络服务器的 wwwroot 文件夹内的文件夹。

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中的图片以保存该位置中的任何照片,我需要做哪些修改。

1 个答案:

答案 0 :(得分:0)

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