将附加变量附加到ajax处理输入类型文件

时间:2018-04-29 20:36:14

标签: javascript

<input type='file' id='inpfile' accept='image/jpeg,image/png,image/gif' hidden>

我需要更改src的{​​{1}},但还需要一个名为imgauth

的附加变量
name

php方

$('#inpfile').change(function(){
    var name = $('#selauth').val(); // this is the additional variable
    var file_data = $('#inpfile').prop('files')[0];
    var form_data = new FormData();
    form_data.append('inpfile', file_data);
    $.ajax({
        url: "authors-pro-img-from-disc.php",
        type: 'post',
        cache: false,
        contentType: false,
        processData: false,
        data: form_data, // this works
        //data: {form_data, 'name': name}, // this doesn't work
        success: function(data){
            $('#imgauth').attr('src', data);
        }
    });
});

那么如何附加$name = $_POST['name']; 变量并将其与图像数据一起发送到服务器。

1 个答案:

答案 0 :(得分:1)

您需要以与文件相同的方式追加名称字段:

var name = $('#selauth').val(); // this is the additional variable
var file_data = $('#inpfile').prop('files')[0];
var form_data = new FormData();

form_data.append('inpfile', file_data);
form_data.append('name', name); // <-------- append name

然后在服务器上以$_POST['name']读取。