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