2016-06-28 57 views
2

我似乎没有获得额外的数据添加到“formData”。追加数据到formData对象

首先添加我的输入文件:

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]); 

这一切正常。
而经过“Ajax调用”结果我的PHP var_dump

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) 
    } 
} 

现在,我想添加一些额外的数据传递到PHP脚本:

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

现在当我检查我的PHP var_dump,数组中没有“usr”数据。
为什么?

回答

1

当U追加:

formData.append('usr', selectedUsr); 

你不能$_FILES['uploadPhoto']

相反,我用$_POST

访问访问对象

所以我的解决方案是:

//JS 
formData.append('usr', selectedUsr); 
//PHP 
$usr = $_POST['usr']; 
1

我认为你是只检查$_FILES,还要检查后数据print_r($_POST)