Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Append data to formData object

I seem not to get additionally data added to "formData".

First i add my input file:

var form = $('#uploadForm')[0];
var formData = new FormData(form);

var input = $("#uploadPhoto")[0];
//Add input file data to formData
formData.append(input.name, input.files[0]);

This works just fine.
And my PHP var_dump after "ajax call" results:

array(1) {
  ["uploadPhoto"]=>
  array(5) {
    ["name"]=>
    string(5) "1.xls"
    ["type"]=>
    string(24) "application/vnd.ms-excel"
    ["tmp_name"]=>
    string(40) "..../tmp/phpmyn3E1"
    ["error"]=>
    int(0)
    ["size"]=>
    int(42799)
  }
}

Now i'd like to add some extra data for passing on to the php script:

formData.append('usr', selectedUsr);
formData.append(input.name, selectedUsr);
formData.append('usr', 'usr: '+ selectedUsr);

When i now check my PHP var_dump, there is no "usr" data in array.
Why?

like image 655
Björn C Avatar asked Jun 28 '16 10:06

Björn C


1 Answers

When u append:

formData.append('usr', selectedUsr);

You cannot access the object with $_FILES['uploadPhoto']

Instead i access with $_POST

So my solution was:

//JS
formData.append('usr', selectedUsr);
//PHP
$usr = $_POST['usr'];
like image 180
Björn C Avatar answered Oct 06 '22 07:10

Björn C