WWW POST gives me Internal Server Error

Kartm

I'm using Unity to make a button that takes a screenshot and then uploads it to my server.
The point is that if I send a form to the server, the WWW gives me an Internal Server Error.
I've tried a lot of examples from the internet and it still gives me that error. Every time.

This is my C# code for uploading the screenshot:

IEnumerator uploadPhoto(){
    /*yield return new WaitForEndOfFrame();
    Texture2D snap = new Texture2D (webCamTexture.width, webCamTexture.height);
    snap.SetPixels (webCamTexture.GetPixels ());
    snap.Apply ();
    webCamTexture.Stop();*/

    yield return new WaitForEndOfFrame();
    Texture2D snap = new Texture2D(Screen.width, Screen.height);
    snap.ReadPixels(new Rect(0,0,Screen.width,Screen.height),0,0);
    snap.Apply();

    byte[] bytes = snap.EncodeToPNG();

    WWWForm form = new WWWForm();
    form.AddField("username", PlayerPrefs.GetString("username"));
    form.AddBinaryData("form_file", bytes, "screenshot.png", "image/png");
    //Debug.Log(System.BitConverter.ToString(bytes));

    WWW connection = new WWW(url, form); 
    yield return connection;

    if (connection.error != null)
    {
        Debug.Log("Server-side error: " + w.error);
    }
    else
    {
        Debug.Log(connection.text);
    }
}

And this is the php script made to receive that BinaryData:

if ($_POST){
    if ($_FILES["form_file"]["error"] !== UPLOAD_ERR_OK) {
        die("Upload failed with error code " . $_FILES["form_file"]["error"]);
    } else {
        if ((($_FILES["form_file"]["type"] == "image/jpg") || ($_FILES["form_file"]["type"] == "image/jpeg") || ($_FILES["form_file"]["type"] == "image/png")) && ($_FILES["form_file"]["size"] < 20000000000)){
            if ($_FILES["form_file"]["error"] > 0) {
                echo "File error: " . $_FILES["form_file"]["error"] . ""; 
            }else{ 

                echo "Uploaded image: " . $_FILES["form_file"]["name"] . "<br>";
                echo "Type: " . $_FILES["form_file"]["type"] . "<br>";
                echo "Size: " . ($_FILES["form_file"]["size"] / 1024) . " Kb<br>";
                echo "Temporary name: " . $_FILES["form_file"]["tmp_name"] . "<br>";

                if (file_exists("upload/" . $_FILES["form_file"]["name"])){
                    echo $_FILES["form_file"]["name"] . " already exists. ";
                }else{
                    move_uploaded_file($_FILES["form_file"]["tmp_name"], "upload/" . $_FILES["form_file"]["name"]);
                    echo "Stored in: " . "upload/" . $_FILES["form_file"]["name"];
                }
            }
        } else{ 
        echo "Invalid file"; 
        }
    }
} else{
    echo "No POST. ";
}


I don't know what's wrong with this. I'm trying to make this work for 2 days now. I just know that the error is on the server-side. I tried to change the permissions of the script to 777, no effect.
What am I doing wrong?

Programmer

Copied your php code to my server and came to conclusion that the problem is from your server. It is not setup properly or this is permission problem which also means that it is not set up properly.

With the php in your question, I got the message from my test server:

Uploaded image: screenshot.png<br>Type: image/png<br>Size: 1.494140625 Kb<br>Temporary name: C:\Windows\Temp\php1354.tmp<br>Stored in: upload/screenshot.png

When ran on your server, I got:

Server-side error: 500 Internal Server Error

The php code I used:

<?php
if ($_POST){
    if ($_FILES["form_file"]["error"] !== UPLOAD_ERR_OK) {
        die("Upload failed with error code " . $_FILES["form_file"]["error"]);
    } else {
        if ((($_FILES["form_file"]["type"] == "image/jpg") || ($_FILES["form_file"]["type"] == "image/jpeg") || ($_FILES["form_file"]["type"] == "image/png")) && ($_FILES["form_file"]["size"] < 20000000000)){
            if ($_FILES["form_file"]["error"] > 0) {
                echo "File error: " . $_FILES["form_file"]["error"] . ""; 
            }else{ 

                echo "Uploaded image: " . $_FILES["form_file"]["name"] . "<br>";
                echo "Type: " . $_FILES["form_file"]["type"] . "<br>";
                echo "Size: " . ($_FILES["form_file"]["size"] / 1024) . " Kb<br>";
                echo "Temporary name: " . $_FILES["form_file"]["tmp_name"] . "<br>";

                if (file_exists("upload/" . $_FILES["form_file"]["name"])){
                    echo $_FILES["form_file"]["name"] . " already exists. ";
                }else{
                    move_uploaded_file($_FILES["form_file"]["tmp_name"], "upload/" . $_FILES["form_file"]["name"]);
                    echo "Stored in: " . "upload/" . $_FILES["form_file"]["name"];
                }
            }
        } else{ 
        echo "Invalid file"; 
        }
    }
} else{
    echo "No POST. ";
}
?>

When I used form.AddField("username", PlayerPrefs.GetString("username")); on your server, I got Upload failed with error code. After including form.AddBinaryData("form_file", bytes, "screenshot.png", "image/png");, I got the 500 error message.

This is a big sign that you don't have permission to read write the file. Also the image was written to C:\Windows\Temp\php1354 on my server. You have to change your php code to write to somewhere else instead of the C:\Windows\Temp\php1354 directory. I would suggest you contact your host to change the permission. This is a server problem. Not Unity or php code fault.

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Dev

Using CURL and PHPSimpleHTMLDOMParser gives me - 500 Internal Server error

From Dev

simple AJAX JQuery example gives me 500 internal server error

From Dev

POST 500 (Internal Server Error)

From Dev

Ajax post internal server error

From Dev

POST 500 internal server error

From Dev

CURL gives 500 Internal server error

From Dev

Creating symlink gives 500 Internal Server Error

From Dev

.htaccess file gives 500 internal server error

From Dev

WAMP .htaccess gives Internal Server Error

From Dev

Creating symlink gives 500 Internal Server Error

From Dev

Send httpcontent with PostAsync gives Internal Server Error

From Dev

Subdomain in Symfony gives Internal Server Error

From Dev

After hosting to server symfony gives 500 internal server error

From Dev

Jupyer lab gives Error 500: Internal Server Error

From Dev

Ajax call to webmethod gives ERROR 500 Internal server error

From Dev

POST 500 (Internal Server Error) ajax,mvc

From Dev

Retrofit 2.1 Internal Server Error with Post

From Dev

Jquery AJAX Post: 500 (Internal Server Error)?

From Dev

AJAX POST 500 INTERNAL SERVER ERROR

From Dev

Internal Server Error 500 in $.post jquery?

From Dev

Jquery AJAX Post: 500 (Internal Server Error)?

From Dev

AJAX POST 500 Internal Server Error on hosting

From Dev

POST 500 (Internal Server Error) - Laravel and Ajax

From Dev

POST 500 Internal Server Error -- PHP

From Dev

Htaccess rewrite url gives 500 Internal server error

From Dev

Visual studio 2013 view project in browser gives internal server error

From Dev

ExpressJS API Deployed on Heroku Gives 500 Internal Server Error

From Dev

Htaccess rewrite url gives 500 Internal server error

From Dev

POST error 500 (Internal Server Error) - JSON syntax error

Related Related

  1. 1

    Using CURL and PHPSimpleHTMLDOMParser gives me - 500 Internal Server error

  2. 2

    simple AJAX JQuery example gives me 500 internal server error

  3. 3

    POST 500 (Internal Server Error)

  4. 4

    Ajax post internal server error

  5. 5

    POST 500 internal server error

  6. 6

    CURL gives 500 Internal server error

  7. 7

    Creating symlink gives 500 Internal Server Error

  8. 8

    .htaccess file gives 500 internal server error

  9. 9

    WAMP .htaccess gives Internal Server Error

  10. 10

    Creating symlink gives 500 Internal Server Error

  11. 11

    Send httpcontent with PostAsync gives Internal Server Error

  12. 12

    Subdomain in Symfony gives Internal Server Error

  13. 13

    After hosting to server symfony gives 500 internal server error

  14. 14

    Jupyer lab gives Error 500: Internal Server Error

  15. 15

    Ajax call to webmethod gives ERROR 500 Internal server error

  16. 16

    POST 500 (Internal Server Error) ajax,mvc

  17. 17

    Retrofit 2.1 Internal Server Error with Post

  18. 18

    Jquery AJAX Post: 500 (Internal Server Error)?

  19. 19

    AJAX POST 500 INTERNAL SERVER ERROR

  20. 20

    Internal Server Error 500 in $.post jquery?

  21. 21

    Jquery AJAX Post: 500 (Internal Server Error)?

  22. 22

    AJAX POST 500 Internal Server Error on hosting

  23. 23

    POST 500 (Internal Server Error) - Laravel and Ajax

  24. 24

    POST 500 Internal Server Error -- PHP

  25. 25

    Htaccess rewrite url gives 500 Internal server error

  26. 26

    Visual studio 2013 view project in browser gives internal server error

  27. 27

    ExpressJS API Deployed on Heroku Gives 500 Internal Server Error

  28. 28

    Htaccess rewrite url gives 500 Internal server error

  29. 29

    POST error 500 (Internal Server Error) - JSON syntax error

HotTag

Archive