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

 

看看效果:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM