MS SQL Server图片与base64String之间相互转换

原本把一些静态数据永久存储于数据中的,但是在angularjs或是Vue.js显示时,却是遇上base64String转换的问题。

可以尝试在静态数据上传时,不要存储为Image或是Vbinary等类型的数据,而是直接把数据流转换为Base64String之后,再存储于数据库中。

但是,如果已经有数据存储,但是在前端去把数据流转换为base64String时,即是有点小麻烦。所以,建议在数据库中,直接转换,再输出给程序前端。

 

 

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:        Insus.NET
-- Create date: 2020-08-17
-- Description:    把Image二进制数据转换为base64String数据
-- =============================================
CREATE FUNCTION [dbo].[svf_ImageToBase64String]
(
    @Image VARBINARY(MAX)
)
RETURNS NVARCHAR(MAX)
AS
BEGIN
    RETURN (CAST(N'' AS XML).value('xs:base64Binary(sql:variable("@Image"))','NVARCHAR(MAX)'))
END
GO



SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:        Insus.NET
-- Create date: 2020-08-17
-- Description:    把base64String数据转换为Image二进制数据
-- =============================================
CREATE FUNCTION [dbo].[svf_Base64StringToImage]
(
    @Base64String NVARCHAR(MAX)
)
RETURNS VARBINARY(MAX)
AS
BEGIN
    RETURN (CAST(N'' AS XML).value('xs:base64Binary(sql:variable("@Base64String"))', 'VARBINARY(MAX)'))
END
GO
Source Code

 

看看效果:

 

posted @ 2020-08-18 08:02  Insus.NET  阅读(2146)  评论(0编辑  收藏  举报