使用没有<form>标签的Jquery-fileupload插件?

时间:2018-11-22 12:07:27

标签: asp.net forms jquery-file-upload

我正在尝试将Jquery File Upload plugin集成到我的aspx页面(asp.net网站)中。我遵循了指南,包括所有必需的脚本和样式表,但是在index.html中使用了form标签来初始化插件,并且还为标签指定了action和{{1} }属性。由于我使用的是asp.net,因此我不允许插入method标签,因为asp.net用另一个form标签包裹了整个网站,并且不允许插入另外的{{1 }}标记在其中。

如何以其他方式初始化插件?

1 个答案:

答案 0 :(得分:0)

您实际上不必具有使用jQuery文件上传插件的表单。因为该插件在后台使用了jQuery ajax。使用页面内的以下代码,请记住,您必须在服务器端编写API。

$(function () {
    'use strict';
    // Change this to the location of your server-side upload handler:
    var url = 'your server api or handler';
    $('#fileupload').fileupload({
        url: url,
        dataType: 'json',
        done: function (e, data) {
            $.each(data.result.files, function (index, file) {
                $('<p/>').text(file.name).appendTo('#files');
            });
        },
        progressall: function (e, data) {
            var progress = parseInt(data.loaded / data.total * 100, 10);
            $('#progress .progress-bar').css(
                'width',
                progress + '%'
            );
        }
    }).prop('disabled', !$.support.fileInput)
        .parent().addClass($.support.fileInput ? undefined : 'disabled');
});

和您的html如下:

<span class="btn btn-success fileinput-button">
        <i class="glyphicon glyphicon-plus"></i>
        <span>Select files...</span>
        <!-- The file input field used as target for the file upload widget -->
        <input id="fileupload" type="file" name="files[]" multiple>
    </span>
    <br>
    <br>
    <!-- The global progress bar -->
    <div id="progress" class="progress">
        <div class="progress-bar progress-bar-success"></div>
    </div>
    <!-- The container for the uploaded files -->
    <div id="files" class="files"></div>