我正在创建一个应用程序,用于存储Azure SQL Server数据库用户信息,包括从Facebook下载的个人资料照片。在服务器端,ASP.NET MVC4将有一个控制器,它将接收信息并将其发送到数据库。
客户端是Javascript,并认为在json中提供图像(一旦转换为base64)。这是一个不错的选择吗?直接发送jpg更好吗?在json中发送信息有什么好处?
在SQL Server中,图像字段将存储为nvarchar(max)
答案 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)
请参阅此链接: