Upload Texture2D image to Server (PHP)

first im using NativeGallery Package to create Texture2D by select on gallery photo…
its works pefectly and my object (Raw Image) has changed

code:

public class ChangeTexture : MonoBehaviour
{

RawImage Raw;
public void Button()
{
    PickImage(512);
}
public void PickImage(int maxSize)
{
    NativeGallery.Permission permission = NativeGallery.GetImageFromGallery((path) =>
   {
       Texture2D texture = NativeGallery.LoadImageAtPath(path, maxSize);
       if (texture == null)
       {
           Debug.Log("Couldn't load texture from " + path);
           return;
       }
       Raw = GetComponent<RawImage>();
       Raw.texture = texture;
   }, "Select a PNG image", "image/png");

    Debug.Log("Permission result: " + permission);
}

}

my question is, how i upload that Texture2D texture to my server… ?

thanks

Well, I haven’t done this in years, so this information might be out dated, but I used to use the WWW function. That has been replaced with UnityWebRequest. But, in short, the process would be something like this:

  • Create a php page on the server that can receive, process, and rename the picture (you should not trust things uploaded without inspecting them). Let’s call it Upload.php
  • Add a reference to the UnityWebRequest and use that object to call that webpage.

Try this: Unity - Manual: Uploading raw data to an HTTP server (PUT)

But you can also (I believe) still use the WWW class: Using UnityWebRequest POST to upload image files - Questions & Answers - Unity Discussions

im using this in unity :

{
WWWForm form = new WWWForm();
byte textureBytes = texture.EncodeToPNG();
form.AddBinaryData(“Gambar”, textureBytes, “images”, “images/png”);
using (UnityWebRequest www = UnityWebRequest.Post(DBManager.URLStandBy, form))
{
yield return www.SendWebRequest();
Debug.Log(“Sent”);
}
}

but its getting error :

NullReferenceException: Object reference not set to an instance of an object
UnityEngine.WWWForm.AddBinaryData (System.String fieldName, System.Byte contents, System.String fileName, System.String mimeType) (at <2424cac47b134bcb9980d5fdf8ea4441>:0)
ChangeTexture+d__5.MoveNext () (at Assets/ChangeTexture.cs:41)