- Home /
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
Answer by Tanoshimi2000 · Oct 09, 2020 at 01:44 PM
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: https://docs.unity3d.com/Manual/UnityWebRequest-UploadingRawData.html
But you can also (I believe) still use the WWW class: https://answers.unity.com/questions/1439467/using-unitywebrequest-post-to-upload-image-files.html
Answer by andi17dermawan · Oct 10, 2020 at 11:34 AM
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 :0) ChangeTexture+d__5.MoveNext () (at Assets/ChangeTexture.cs:41)
Your answer
Follow this Question
Related Questions
How to Convert MovieTexture to Byte? 1 Answer
Encode to png and upload to CGI how? 0 Answers
Read/Write file to a server. Android 1 Answer
unity crash when upload a file 0 Answers