C. Struckmann
C. Struckmann

Reputation: 3

Ionic: Post File to Server

I want to post a JSON/CSV-file to the server and save it in that location like other files I can manually put up there (with FileZilla for example) and read it out later from a different user.

I already tried using the http.post method like it is written here but without success.

It would be great if someone could help me out with this issue.

Upvotes: 0

Views: 54

Answers (1)

Ron Nabuurs
Ron Nabuurs

Reputation: 1556

You need a server to receive the data and save it to the disk. You could use something like the tutorial you followed.

The only thing that needs to be changed is that the php server should write the contents of your post request to the disk. Something like the script below

I did not test this, so probably some changed need to be made.

<?php
    //http://stackoverflow.com/questions/18382740/cors-not-working-php
    if (isset($_SERVER['HTTP_ORIGIN'])) {
        header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}");
        header('Access-Control-Allow-Credentials: true');
        header('Access-Control-Max-Age: 86400');    // cache for 1 day
    }

    // Access-Control headers are received during OPTIONS requests
    if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {

        if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD']))
            header("Access-Control-Allow-Methods: GET, POST, OPTIONS");         

        if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']))
            header("Access-Control-Allow-Headers:        {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}");

        exit(0);
    }


    //http://stackoverflow.com/questions/15485354/angular-http-post-to-php-and-undefined
    $postdata = file_get_contents("php://input");
    if (isset($postdata)) {
        $request = json_decode($postdata);
        $myfile = fopen("newfile.json", "w") or die("Unable to open file!");
        fwrite($myfile, $request);
        fclose($myfile);
    }
    else {
        echo "Not called properly!";
    }
?>

Upvotes: 1

Related Questions