首页 >web前端 >js教程 >Ajax上传文件同时显示文件上传过程进度条的代码

Ajax上传文件同时显示文件上传过程进度条的代码

不言
不言原创
2018-08-11 16:45:331414浏览

本篇文章给大家带来的内容是关于Ajax上传文件同时显示文件上传过程进度条的代码,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

最近在学ASP.NET MVC,正好做到文件上传,记录一下。
前端除了jQuery还用了Bootstrap和Layer。

HTML页面里的表单:

<form class="form-horizontal" id="vform" action="">
    <div class="form-group">
        <label class="col-sm-3 control-label">资源名称:</label>
        <div class="col-sm-8">
            <input name="name" type="text" class="form-control" id="name" />
        </div>
    </div>
    <div class="form-group">
        <label class="col-sm-3 control-label">请选择本地资源:</label>
        <div class="col-sm-8">
            <input name="file" type="file" class="form-control" id="file" />
            <div class="progress">
                <div class="progress-bar" id="progress-bar"></div>
            </div>
        </div>
    </div>
    <div class="form-group">
        <div class="col-sm-4 col-sm-offset-3">
            <input class="btn btn-primary" id="submit" value="确认上传" />
        </div>
    </div>
</form>

JavaScript代码:

<script>
    $("#submit").click(function () {
        var formData = new FormData(document.getElementById("vform"));
        $.ajax({
            type: "POST",
            url: "@Url.Action("DoAdd")",
            data: formData,
            processData: false,
            contentType: false,
            error: function (data) {
                layer.msg(&#39;上传失败&#39;, {
                    icon: 2,
                    time: 1000 //1秒关闭(如果不配置,默认是3秒)
                });
            },
            success: function (data) {
                if (data.code == 1) {
                    layer.msg(&#39;上传成功&#39;, {
                        icon: 1,
                        time: 1000 //1秒关闭(如果不配置,默认是3秒)
                    }, function () {
                        parent.location.reload();
                    });
                }                else {
                    layer.msg(data.msg, {
                        icon: 2,
                        time: 1000 //1秒关闭(如果不配置,默认是3秒)
                    });
                }
            },
            xhr: function () {
                myXhr = $.ajaxSettings.xhr();                if (myXhr.upload) { //检查upload属性是否存在  
                    //绑定progress事件的回调函数  
                    myXhr.upload.addEventListener(&#39;progress&#39;, progressHandlingFunction, false);
                }                return myXhr; //xhr对象返回给jQuery使用
            }
        });
    });    function progressHandlingFunction(event) {
        var loaded = Math.floor(100 * (event.loaded / event.total)); //已经上传的百分比
        $("#progress-bar").html(loaded + "%").css("width", loaded + "%");
    }</script>

相关推荐:

js实现gzip解压缩的代码实现

js如何操作来实现点击小图展示出大图的效果?(代码示例)

以上是Ajax上传文件同时显示文件上传过程进度条的代码的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn