using System; using System.Collections; using System.Collections.Generic; using System.IO; using System.Net; using System.Net.Http; using System.Threading.Tasks; using ET; using FairyGUI; using UnityEngine; using UnityEngine.Networking; namespace GFGGame { public static class PictureStorageHelper { //获取图片的临时上传地址协议 public static async ETTask ReqTempPictureUrl(int pictureType) { ViewManager.Show("上传中..."); S2C_GetTempPictureUrl response = null; response = (S2C_GetTempPictureUrl)await MessageHelper.SendToServer(new C2S_GetTempPictureUrl() { PictureType = pictureType }); if (response != null) { if (response.Error == ErrorCode.ERR_Success) { return new string[] { response.TempPictureUrl, response.PictureObjectPath }; } } else { ViewManager.Hide(); PromptController.Instance.ShowFloatTextPrompt("获取上传地址失败"); } return null; } //将图片上传到华为云 public static async Task PushToHWCloud(string signUrl, byte[] buffer) { HttpContent content = new ByteArrayContent(buffer); HttpClient httpClient = new HttpClient(new HttpClientHandler() { UseCookies = false }); HttpResponseMessage response = await httpClient.PutAsync(signUrl, content); response.EnsureSuccessStatusCode(); await response.Content.ReadAsStreamAsync(); if (response.StatusCode != HttpStatusCode.OK) { ViewManager.Hide(); PromptController.Instance.ShowFloatTextPrompt("上传资源失败"); return false; } else { return true; } } public static IEnumerator Download(List list, int startIndex, Action callBack = null) { for (int i = startIndex; i < list.Count; i++) { PoemGalleryData data = PoemGalleryDataManager.Instance.GetGalleryDataById(list[i]); if (data.Ntexture != null) continue; using (UnityWebRequest request = UnityWebRequestTexture.GetTexture(data.PictureTempUrl)) { yield return request.SendWebRequest(); if (request.result == UnityWebRequest.Result.ProtocolError || request.result == UnityWebRequest.Result.ConnectionError) { PromptController.Instance.ShowFloatTextPrompt("下载失败"); yield return null; } else { Texture2D texture = (request.downloadHandler as DownloadHandlerTexture).texture; data.Ntexture = new NTexture(texture); } } } if (callBack != null) callBack(); ET.Log.Debug("Download finish!!!"); EventAgent.DispatchEvent(ConstMessage.DOWNLOAD_FINISH); } public static IEnumerator Download(List list) { for (int i = 0; i < list.Count; i++) { PoemPhotoData data = list[i]; if (data == null || data.Ntexture != null) continue; using (UnityWebRequest request = UnityWebRequestTexture.GetTexture(data.PictureTempUrl)) { yield return request.SendWebRequest(); if (request.result == UnityWebRequest.Result.ProtocolError || request.result == UnityWebRequest.Result.ConnectionError) { PromptController.Instance.ShowFloatTextPrompt("下载失败"); yield return null; } else { Texture2D texture = (request.downloadHandler as DownloadHandlerTexture).texture; data.Ntexture = new NTexture(texture); } } } ET.Log.Debug("Download finish!!!"); EventAgent.DispatchEvent(ConstMessage.DOWNLOAD_FINISH); } } }