• Js异步上传加进度条


    http://www.ruanyifeng.com/blog/2012/09/xmlhttprequest_level_2.html

    http://www.cnblogs.com/yuanlong1012/p/5127497.html

    https://front-js.cc/test/fileupload/

    http://www.ruanyifeng.com/blog/2012/08/file_upload.html

    1.客户端 upload.cshtml

    <!doctype html>
    <html>
    <head>
    
        <script src="~/Scripts/jquery-1.10.2.min.js"></script>
        <script>
            $(function () {
                $('#btn').on('click', function () {
                    var files = $('#file').get(0).files;
                    var len = (files.length);
                    if (len > 0) {
                        console.log(files[0]);
                        if (window.FormData) {
                            var formData = new FormData();
                            // 建立一个upload表单项,值为上传的文件
                            formData.append('upload', files[0]);
                            var xhr = new XMLHttpRequest();
                            xhr.open('POST', '/Home/UploadFile');
                            // 定义上传完成后的回调函数
                            xhr.onload = function () {
                                if (xhr.status === 200) {
                                    console.log('上传成功');
                                } else {
                                    console.log('出错了');
                                }
                            };
                            xhr.upload.onprogress = function (event) {
                                if (event.lengthComputable) {
                                    var complete = (event.loaded / event.total * 100 | 0);
                                    var progress = document.getElementById('uploadprogress');
                                    progress.value = progress.innerHTML = complete;
                                }
                            };
                            xhr.send(formData);
                        }
                    }
    
                });
            });
        </script>
    </head>
    <body>
        <input id='file' type='file' />
        <button id='btn'>clickme</button>
        <progress id="uploadprogress" min="0" max="100" value="0">0</progress>
    </body>
    </html>
    

      2.服务端代码

            /// <summary>
            /// 上传文件
            /// </summary>
            /// <returns></returns>
            public ActionResult UploadFile()
            {
                if (Request.Files.Count > 0)
                {
                    Request.Files[0].SaveAs( AppDomain.CurrentDomain.BaseDirectory+"\upload\" + Guid.NewGuid().ToString() );
                }
    
                return View();
            }
            /// <summary>
            /// 上传页面
            /// </summary>
            /// <returns></returns>
            public ActionResult Upload()
            {
    
                return View("Upload");
            }
  • 相关阅读:
    Git设置HTTP/HTTPS代理服务器
    队列(Queue)顺序存储C语言实现
    二叉树前序序列和中序序列转为后序序列
    CFileDialog对话框中,如何修改对话框标题
    轻型读写锁 Slim Reader/Writer (SRW) Locks
    PC lint -sem 用法示例
    C# Linq 取得两个列表的交集
    wpf datagrid row的命中测试
    C# Unit Test 备注
    DataGrid 滚动特定的行或者列
  • 原文地址:https://www.cnblogs.com/zhshlimi/p/6070637.html
Copyright © 2020-2023  润新知