From 3f6685c77beeb12baf840733fb890860f4c26e7c Mon Sep 17 00:00:00 2001 From: mac <user@users-MacBook-Pro.local> Date: 星期四, 25 七月 2024 17:25:59 +0800 Subject: [PATCH] 2024年07月25日17:24:45 --- HDL_ON/Common/ImageUtlis.cs | 132 ++++++++++++++++++++++++++++++++++++++------ 1 files changed, 114 insertions(+), 18 deletions(-) diff --git a/HDL_ON/Common/ImageUtlis.cs b/HDL_ON/Common/ImageUtlis.cs index 918483d..253319b 100644 --- a/HDL_ON/Common/ImageUtlis.cs +++ b/HDL_ON/Common/ImageUtlis.cs @@ -3,6 +3,9 @@ using HDL_ON.DAL.Server; using System.IO; using HDL_ON.Common; +using System.Collections.Generic; +using System.Text; +using System.Security.Cryptography; namespace HDL_ON { @@ -147,9 +150,9 @@ { var requestJson = HttpUtil.GetSignRequestJson(uploadImageObj); var revertObj = HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_UploadImage, requestJson); - if(revertObj.Code == StateCode.SUCCESS) + if (revertObj.Code == StateCode.SUCCESS) { - if(revertObj.Data != null) + if (revertObj.Data != null) { return revertObj.Data.ToString(); } @@ -160,6 +163,17 @@ } return ""; } + /// <summary> + /// 鑾峰彇鍦烘櫙榛樿鍥惧簱鍒楄〃 + /// </summary> + /// <returns></returns> + public ResponsePackNew GetSceneDefaultIconList() + { + var d = new Dictionary<string, object>(); + var requestJson = HttpUtil.GetSignRequestJson(d); + var revertObj = HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_GetSceneDefaultIconList, requestJson); + return revertObj; + } /// <summary> /// 閫氳繃鍥剧墖璺緞涓嬭浇鍥剧墖 @@ -167,19 +181,26 @@ /// </summary> public byte[] GetImageDownloadUrl(string imageKey) { - var requestJson = HttpUtil.GetSignRequestJson(new GetImageUrlObj() + if (imageKey.StartsWith("https:") || imageKey.StartsWith("http:")) { - imageKey = imageKey, - }); - var revertObj = HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_GetImageUrl, requestJson); - if (revertObj.Code == StateCode.SUCCESS) + return HttpUtil.HttpsDownload(imageKey); + } + else { - if (revertObj.Data != null) + var requestJson = HttpUtil.GetSignRequestJson(new GetImageUrlObj() { - if (!string.IsNullOrEmpty(revertObj.Data.ToString())) + imageKey = imageKey, + }); + var revertObj = HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_GetImageUrl, requestJson); + if (revertObj.Code == StateCode.SUCCESS) + { + if (revertObj.Data != null) { - var url = revertObj.Data.ToString(); - return HttpUtil.HttpsDownload(url); + if (!string.IsNullOrEmpty(revertObj.Data.ToString())) + { + var url = revertObj.Data.ToString(); + return HttpUtil.HttpsDownload(url); + } } } } @@ -260,7 +281,6 @@ if (imageView != null) { imageView.ImageBytes = imageBytes; - //Utlis.WriteLine("imageKey 鍔犺浇浜戠涓嬭浇鍥剧墖鎴愬姛"); } }); } @@ -282,6 +302,34 @@ } } + + string strKey = "abcdefgh";//娉ㄦ剰锛氳繖閲岀殑瀵嗛挜sKey蹇呴』鑳借浆涓�8涓猙yte锛屽嵆杈撳叆瀵嗛挜涓�8鍗婅涓瓧绗︽垨鑰�4涓叏瑙掑瓧绗︽垨鑰�4涓眽瀛楃殑瀛楃涓� + string strIV = "ijklmnop"; + + // 鍔犲瘑 + private string Encrypt(string _strQ) + { + byte[] buffer = Encoding.UTF8.GetBytes(_strQ); + MemoryStream ms = new MemoryStream(); + DESCryptoServiceProvider des = new DESCryptoServiceProvider(); + CryptoStream encStream = new CryptoStream(ms, des.CreateEncryptor(Encoding.UTF8.GetBytes(strKey), Encoding.UTF8.GetBytes(strIV)), CryptoStreamMode.Write); + encStream.Write(buffer, 0, buffer.Length); + encStream.FlushFinalBlock(); + return Convert.ToBase64String(ms.ToArray()); + } + + // 瑙e瘑 + private string Decrypt(string _strQ) + { + byte[] buffer = Convert.FromBase64String(_strQ); + MemoryStream ms = new MemoryStream(); + DESCryptoServiceProvider des = new DESCryptoServiceProvider(); + CryptoStream encStream = new CryptoStream(ms, des.CreateDecryptor(Encoding.UTF8.GetBytes(strKey), Encoding.UTF8.GetBytes(strIV)), CryptoStreamMode.Write); + encStream.Write(buffer, 0, buffer.Length); + encStream.FlushFinalBlock(); + return Encoding.UTF8.GetString(ms.ToArray()); + } + /// <summary> /// 2020-12-03 /// 妫�娴嬪姞杞藉浘鐗� @@ -294,6 +342,13 @@ { try { + var imageUrl = imageKey; + + if (imageUrl.StartsWith("http")) + { + imageKey = Encrypt(imageKey).Replace("/","123"); + } + //1.鏈湴榛樿鍥惧簱鍥剧墖锛岀洿鎺ュ姞杞芥湰鍦� if (imageKey.Contains("Classification/Room/Roombg") || imageKey.Contains("Intelligence/Gallery/scenebg")) { @@ -321,7 +376,7 @@ //2.2 鏈湴娌$紦瀛橈紝寮�鍚嚎绋嬩簯绔笅杞界劧鍚庣紦瀛� System.Threading.Tasks.Task.Run(() => { - byte[] imageBytes = GetImageDownloadUrl(imageKey); + byte[] imageBytes = GetImageDownloadUrl(imageUrl); if (imageBytes != null) { WriteFileByBytes(imageKey, imageBytes); @@ -331,14 +386,14 @@ if (frameLayout != null) { frameLayout.BackgroundImagePath = imageKey; - //Utlis.WriteLine("imageKey 鍔犺浇浜戠涓嬭浇鍥剧墖鎴愬姛"); + Utlis.WriteLine("imageKey 鍔犺浇浜戠涓嬭浇鍥剧墖鎴愬姛"); } }); } else { //2.4 涓嬭浇鏄惁锛屾槸鍚︿娇鐢ㄩ粯璁ゅ浘鐗� - //Utlis.WriteLine("imageKey 鍔犺浇浜戠鍥剧墖澶辫触"); + Utlis.WriteLine("imageKey 鍔犺浇浜戠鍥剧墖澶辫触"); } }); } @@ -440,7 +495,7 @@ try { if (string.IsNullOrEmpty(imageKey)) return null; - + byte[] imageBytes; if (!ignoreCache && Exists(imageKey)) { @@ -451,12 +506,12 @@ { //浜戠涓嬭浇 imageBytes = GetImageDownloadUrlWithRegionUrl(imageKey, regionUrl); - if(imageBytes != null) + if (imageBytes != null) { //淇濆瓨鍒版湰鍦� WriteFileByBytes(imageKey, imageBytes); } - + } return imageBytes; } @@ -466,6 +521,47 @@ } } + + + /// <summary> + /// 涓嬭浇鐢ㄦ埛澶村儚 + /// </summary> + /// <param name="imageUrl"></param> + /// <param name="ignoreCache">蹇界暐缂撳瓨</param> + /// <param name="regionUrl">鎸囧畾鏈嶅姟鍣ㄥ煙鍚�,浼犵┖涓轰娇鐢ㄥ綋鍓嶇敤鎴峰湴鍧�</param> + /// <returns></returns> + public byte[] DownImageByImageUrl(string imageUrl, bool ignoreCache = false) + { + try + { + if (string.IsNullOrEmpty(imageUrl)) return null; + + byte[] imageBytes; + if (!ignoreCache && Exists(imageUrl)) + { + //鏈湴鏈夌紦瀛� + imageBytes = ReadFile(imageUrl); + } + else + { + //涓嬭浇 + imageBytes = HttpUtil.HttpsDownload(imageUrl); + if (imageBytes != null) + { + //淇濆瓨鍒版湰鍦� + WriteFileByBytes(imageUrl, imageBytes); + } + + } + return imageBytes; + } + catch + { + return null; + } + } + + #endregion } } -- Gitblit v1.8.0