使用https://github.com/blueimp/jQuery-File-Upload添加其他数据

时间:2013-01-30 07:02:11

标签: jquery

我正在尝试在每次上传时添加其他表单数据。

我现在正在使用它。

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();
没有这样的运气。

有什么想法吗?

0 个答案:

没有答案