将图像从javascript客户端发送到SQL Server的最佳格式

时间:2013-04-19 08:55:45

标签: javascript sql-server ajax asp.net-mvc json

我正在创建一个应用程序,用于存储Azure SQL Server数据库用户信息,包括从Facebook下载的个人资料照片。在服务器端,ASP.NET MVC4将有一个控制器,它将接收信息并将其发送到数据库。

客户端是Javascript,并认为在json中提供图像(一旦转换为base64)。这是一个不错的选择吗?直接发送jpg更好吗?在json中发送信息有什么好处?

在SQL Server中,图像字段将存储为nvarchar(max)

3 个答案:

答案 0 :(得分:1)

您是要将图像作为二进制流内容类型image/jpeg还是作为文本流编码的base64返回?你很可能会去做前者,所以几乎没有理由通过中间base64编码传输。当然,将它们存储为VARBINARY(MAX)。即使 if 你选择将它们存储为base64,为base64文本选择Unicode数据类型也是非常浪费的(无缘无故地将存储成本加倍......),base64可以很好地适应{ {1}}。

但是,特别是在SQL Azure环境中,您应该考虑在Azure BLOB storage中存储媒体,并且只在数据库中存储Blob路径。

答案 1 :(得分:0)

在我看来,最好使用Multipart Forms或类似的方式直接以.jpg格式发送图像。

当您传输显式数据时,在Json中发送信息非常有用,例如您稍后可以查询或反序列化的集合或对象。

答案 2 :(得分:0)

  

客户端是Javascript,并认为在json中提供图像(一旦转换为base64)。这是一个不错的选择吗?

正如Pasrus指出的那样,你不会操纵图像数据。所以JSON似乎不是一个好选择。

一个选项是,你可以将base64数据添加到html标签的src属性中并发送它。

  

在json中发送信息有什么好处?

请检查这个答案,有很多:

Advantages of using application/json over text/plain?

  

在SQL Server中,图像字段将存储为nvarchar(max)

请参阅此链接:

Storing images in SQL Server?