使用JQuery文件上载添加额外的表单数据(载波实现)

时间:2018-03-15 13:26:10

标签: jquery ruby-on-rails jquery-ui carrierwave form-data

尝试使用帮助Jquery File Upload和carrier Gem在rails应用程序中实现文件上载功能。

在上传每个文档时,我需要为每个文档保存一个标记。我尝试了很多将标签添加到表单数据中。但系统不会将标签提交给服务器,只保存并提交上传的文件

在标记中上传标记

<input id="fileupload" type="file" name="document[uploaded_file]" data-url="<%= documents_path %>"  multiple />
<div class="upload-progress progress progress-striped active">
  <div id="bar" class="bar" style="width:0%;"></div>
</div>

上传的jquery方法

$('#fileupload').fileupload({
        dataType: 'html',
        progressall: function (e, data) {
            var percent = parseInt(data.loaded / data.total * 100, 10);

            var $uploadProgress = $('.upload-progress');

            $uploadProgress.find('bar').width(percent + "%");
        },
        add: function (e, data) {
            data.submit().error(function (xhr) {
                // Unfortunately this is not picked up by the global event handlers.
                var message = xhr.getResponseHeader('X-Message');
                if (message) {
                    showAlert(message);
                }
            });
        },
        progress: function (e, data) {
            var percent = parseInt(data.loaded / data.total * 100, 10);
            $('#upload-dialog').find('bar').width(percent + "%");
        },
        done: function (e, data) {
            if (data.result.trim() == '') {
                data.context.remove();
            } else {

                 $('#upload-dialog').modal('hide');

                //remaiing action
            }
        },
        fail: function (e, data) {
            data.context.remove();
        }

    });

如何在上传文档时为文档添加标记?上传执行JQuery UI库的文件上载事件

1 个答案:

答案 0 :(得分:1)

您应该使用formdata来执行此操作

data.formData = {example: val};

请参阅docs了解解释