/// <summary> /// Saves the image. /// </summary> /// <param name="identifier">Identifier.</param> /// <param name="texture">Texture.</param> /// <param name="settings">Settings.</param> public static void SaveImage(string identifier, Texture2D texture, SaveGameSettings settings) { settings.Identifier = identifier; string path = SaveGameFileStorage.GetAbsolutePath(settings.Identifier, settings.BasePath); File.WriteAllBytes(path, texture.EncodeToPNG()); }
/// <summary> /// Upload the specified identifier, uploadIdentifier and settings. /// </summary> /// <param name="identifier">Identifier.</param> /// <param name="uploadIdentifier">Upload identifier.</param> /// <param name="settings">Settings.</param> public virtual IEnumerator UploadFile(string identifier, string uploadIdentifier, SaveGameSettings settings) { settings.Identifier = identifier; byte[] data = File.ReadAllBytes(SaveGameFileStorage.GetAbsolutePath(settings.Identifier, settings.BasePath)); // Using WWWForm instead of Multipart form data, because there are some internal issues within Unity WWWForm form = new WWWForm(); form.AddField("action", "uploadfile"); form.AddField("secret-key", m_SecretKey); form.AddField("username", m_Username); form.AddField("password", m_Password); form.AddField("file-name", uploadIdentifier); if (m_CreateAccount) { form.AddField("create-account", ""); } form.AddBinaryData("file", data, uploadIdentifier); //var form = CreateRequestForm("downloadfile", settings); //form.Add("file-name", identifier); m_Request = UnityWebRequest.Post(m_Url, form); #if UNITY_2017_2_OR_NEWER yield return(m_Request.SendWebRequest()); #else yield return(m_Request.Send()); #endif }
/// <summary> /// Loads the image. /// </summary> /// <returns>The image.</returns> /// <param name="identifier">Identifier.</param> /// <param name="settings">Settings.</param> public static Texture2D LoadImage(string identifier, SaveGameSettings settings) { settings.Identifier = identifier; string path = SaveGameFileStorage.GetAbsolutePath(settings.Identifier, settings.BasePath); byte[] data = File.ReadAllBytes(path); Texture2D texture = new Texture2D(0, 0); texture.LoadImage(data); return(texture); }
/// <summary> /// Downloads the file. /// </summary> /// <returns>The file.</returns> /// <param name="identifier">Identifier.</param> /// <param name="downloadIdentifier">Download identifier.</param> /// <param name="settings">Settings.</param> public virtual IEnumerator DownloadFile(string identifier, string downloadIdentifier, SaveGameSettings settings) { settings.Identifier = identifier; var form = CreateRequestForm("downloadfile", settings); form.Add("file-name", identifier); m_Request = UnityWebRequest.Post(m_Url, form); #if UNITY_2017_2_OR_NEWER yield return(m_Request.SendWebRequest()); #else yield return(m_Request.Send()); #endif #if UNITY_2017_1_OR_NEWER if (m_Request.isHttpError || m_Request.isNetworkError) { Debug.LogError("Download Failed"); Debug.LogError(m_Request.error); Debug.LogError(m_Request.downloadHandler.text); } else { File.WriteAllBytes( SaveGameFileStorage.GetAbsolutePath(downloadIdentifier, settings.BasePath), m_Request.downloadHandler.data); } #else if (m_Request.isError) { Debug.LogError("Download Failed"); Debug.LogError(m_Request.error); Debug.LogError(m_Request.downloadHandler.text); } else { File.WriteAllBytes( SaveGameFileStorage.GetAbsolutePath(downloadIdentifier, settings.BasePath), m_Request.downloadHandler.data); } #endif }
/// <summary> /// Gets the absolute path to the identifier. /// This method only works on platforms that support file storage. /// </summary> /// <param name="identifier"></param> /// <returns></returns> public static string GetAbsolutePath(string identifier, SaveGameSettings settings) { settings.Identifier = identifier; return(SaveGameFileStorage.GetAbsolutePath(settings.Identifier, settings.BasePath)); }