原本把一些靜態數據永久存儲於數據中的,但是在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
看看效果: