1

我正在尝试在每次上传时添加额外的表单数据。

我现在正在使用这个。

var data = {
    formData : {
        vendor:    '{{ $vendor }}',
        extension: '{{ $extension }}'
    },
    acceptFileTypes: /^({{ str_replace('/', '\/', implode('|', $mimes)) }})$/i,
    uploadTemplateId: 'media-upload-template-{{$identifier}}',
    downloadTemplateId: 'media-download-template-{{$identifier}}',

    // jQuery plugin requires size in Bytes, Laravel uses KB
    maxFileSize: {{ ($_valid = (int) $max_file_size) ? $_valid * 1024 : 'undefined' }}
}

// Grab the CSRF data
if ((csrf = $('#media-upload-csrf-{{$identifier}}')) && csrf.length) {
    data.formData[csrf.attr('name')] = csrf.val();
}

$('#media-upload-{{$identifier}}').fileupload(data);

$('#media-upload-{{$identifier}}').bind('fileuploadsubmit', function (e, data) {
    var inputs = data.context.find(':input');
    if (inputs.filter('[required][value=""]').first().focus().length) {
        return false;
    }
    data.formData = inputs.serializeArray();

});

我正在为每个文件添加一个用户 ID,因此 userid[] 将等于 n,这来自上传模板中文件旁边的选择

使用时出现问题

data.formData = inputs.serializeArray();

它会覆盖上面数据变量中的所有设置。

我也尝试过使用

$.each(inputs.serializeArray(), function(i, obj) {
            data.formData[obj.name] =obj.value;
});

代替

data.formData = inputs.serializeArray();

没有这样的运气。

有任何想法吗?

4

0 回答 0