gpt4 book ai didi

sql-server - 如何将图像发送到Web服务 Node js,然后使用此图像参数执行存储过程

转载 作者:太空宇宙 更新时间:2023-11-04 02:04:38 24 4
gpt4 key购买 nike

我是 Node js新手。我在 SQL Server 中编写了以下存储过程:

CREATE PROCEDURE [dbo].[SP_ADDMESSAGE]
@PhoneNumber nvarchar(50),
@Type numeric(18,0),
@Image Image=null,
@MessageContent nvarchar(255)=null
AS
BEGIN
insert Message([PhoneNumber],[Type],[Image],[MessageContent])
values(@PhoneNumber,@Type,@Image,@MessageContent)
RETURN 1
END

我的 NodeJS Web 服务:

app.post('/message/add',function(req,res){
sql.close();
// connect to your database
sql.connect(config, function (err) {
if (err)
console.log(err);

var request = new sql.Request();
request.input('PhoneNumber',sql.NVarChar(50),req.query.phoneNumber);
request.input('Type',sql.Numeric,req.query.type);
//request.input('Image',sql.Image,req.query.image);
//How to add image into SP???
request.input('MessageContent',sql.NVarChar(225),req.query.messageContent);
request.execute('SP_ADDMESSAGE').then(function(err,recordset,returnValue,affect){
console.dir(recordset);
console.dir(err);
}).catch(function(err) {
console.log(err);
});
});
});

但是我不知道如何在android中将带有图像的http请求POST(或在Firefox中使用Postman应用程序或HttpRequester)发送到此Web服务,以及如何将图像添加到存储过程中的参数中来执行。

最佳答案

通常,二进制数据(例如图像)不会存储在数据库中。该级别的存储非常昂贵(相对而言),并且不适合此类用途。

相反,图像作为重命名(无扩展名)文件存储在文件系统上,并在数据库中给出唯一的记录来表示它们。

该记录通常有:

  • 唯一生成的 ID 或 uuid
  • 文件类型
  • 文件名
  • 文件大小
  • 上传日期
  • 等等

有些应用程序会在此时优化图像,因为让我们面对现实吧,现在的相机非常好而且文件很大(我强烈推荐这样做)。

要将“图像”返回到应用程序,您可以使用我刚才提到的数据库记录中的唯一标识符生成一个 URL。这将对应于应用程序中的路径或外部 CDN url(如果您选择了该方向)。谈论“应用内”方法。该应用程序将根据 url (yoursite.com/images/1) 中提供的键查找记录,随后从存储的位置获取二进制数据并使用图形库渲染它(nodejs 有一个我之前使用过的 GD library 版本)。

关于sql-server - 如何将图像发送到Web服务 Node js,然后使用此图像参数执行存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44776282/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com