异步带进度条——提交文件

前台代码:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
    <style type="text/css">
        #div1{width:300px;height:30px;border:1px solid #000;position:relative;}
        #div2{width:0px;height:30px;background:#CCC;}
        #div3 {
            width: 300px;
            height: 30px;
            line-height: 30px;
            text-align: center;
            position: absolute;
            left:0px;top:0px;
        }
    </style>
</head>
<body>
 <input type="file" id="file"/><input type="button" id="btnFile" value="上传" />
   <!--进度条-->
    <div id="div1">
        <div id="div2"></div>
        <div id="div3">0%</div>
    </div>

</body>
</html>
<script type="text/javascript">
    var file = document.getElementById("file");
    var btnFile = document.getElementById("btnFile");
    var div1 = document.getElementById("div1");
    var div2 = document.getElementById("div2");
    var div3 = document.getElementById("div3");

    btnFile.onclick = function () {
        var xml = new XMLHttpRequest();
        xml.onload = function () {
            alert(xml.responseText);
        }
        //上传进度条事件
        var oUpload = xml.upload;
        oUpload.onprogress = function (ev) {
            //console.log(ev.total + ":" + ev.loaded);//ev.loaded是已经上传的 ev.total是总的
            var iScale = ev.loaded / ev.total;//计算出比例
            div2.style.width = 300 * iScale + "px";
            div3.innerHTML = iScale*100 + "%";
        }

        xml.open("post", "HandlerFiles.ashx", true);
        xml.setRequestHeader(‘X-Request-Width‘, ‘XMLHttpRequest‘);
        var oFormData = new FormData();
        oFormData.append("file",file.files[0]);
        xml.send(oFormData);
    }
</script>

  

时间: 2024-10-24 04:46:55

异步带进度条——提交文件的相关文章

PHP+ajaxForm异步带进度条上传文件实例

在使用ajaxForm方法之前,首先需要安装form.js的插件,网上有: 一.首先说用法,ajaxForm可以接收0或1个参数,该参数可以是一个变量.一个对象或回调函数,这个对象主要有以下参数: var object= {                     url:url, //form提交数据的地址   type:type,   //form提交的方式(method:post/get)   target:target, //服务器返回的响应数据显示的元素(Id)号           

带进度条的文件上传

Ajax技术——带进度条的文件上传 1.概述 在实际的Web应该开发或网站开发过程中,经常需要实现文件上传的功能.在文件上传过程中,经常需要用户进行长时间的等待,为了让用户及时了解上传进度,可以在上传文件的同时,显示文件的上传进度条.运行本实例,如图1所示,访问文件上传页面,单击“浏览”按钮选择要上传的文件,注意文件不能超过50MB,否则系统将给出错误提示.选择完要上传的文件后,单击“提交”按钮,将会上传文件并显示上传进度. 2.技术要点 主要是应用开源的Common-FileUpload组件来

PHP+Ajax异步带进度条上传文件

前端引入文件 <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css"> <script src="http://apps.bdimg.com/libs/jquery/2.1.1/jquery.min.js"></script> <script src="

ajax实现带进度条的文件上传

jsp部分:设计一个表单,form的属性添加 enctype="multipart/form-data",设计一个iframe,设为隐藏.form的target等于iframe的name; servlet部分:文件上传用的Commons-FileupLoad,需要两个Jar,commons-fileupload和commons-io,少了第二个会报出找不到类的异常: 第一个servlet处理上传,及把上传进度保存到session,第二个servlet处理ajax请求,回传session

Ajax技术——带进度条的文件上传

1.概述 在实际的Web应该开发或网站开发过程中,经常需要实现文件上传的功能.在文件上传过程中,经常需要用户进行长时间的等待,为了让用户及时了解上传进度, 可以在上传文件的同时,显示文件的上传进度条.运行本实例,如图1所示,访问文件上传页面,单击“浏览”按钮选择要上传的文件,注意文件不能超过 50MB,否则系统将给出错误提示.选择完要上传的文件后,单击“提交”按钮,将会上传文件并显示上传进度. 2.技术要点 主要是应用开源的Common-FileUpload组件来实现分段文件上传,从而实现在上传

带进度条的文件批量上传插件uploadify

有时项目中需要一个文件批量上传功能时,个人认为uploadify是快速简便的解决方案. 先上效果图: 一. 下载uploadify 从官网下载uploadify的Flash版本(Flash版本免费,另一版本HTML5版本需要付费) 下载地址: http://www.uploadify.com/download/ 下载后直接把文件解压,然后放在项目中 二. 在项目中使用 在页面中引入: <!--引入Jquery--> <script src="js/jquery-1.11.3.m

servlet多文件上传(带进度条)

需要commons-fileupload-1.3.jar和commons-io-2.4.jar的支持 页面效果:(图片文件都可以) (1)进度标识类 public class UploadStatus { private long bytesRead; private long contentLength; private int items; private long startTime = System.currentTimeMillis(); //set get 方法 省略 } (2)监听

atitit.文件上传带进度条的实现原理and组件选型and最佳实践总结O7

1. 实现原理 1 2. 大的文件上传原理::使用applet 1 3. 新的bp 2 1. 性能提升---分割小文件上传,避免一次使用内存使用过大的 2 2. Uuid还是原来文件名称:: 2 3. 监听器频繁地被调用 2 4. 结合wz easyui 2 4. 选型 2 5. Uploadify::yash js+flash 3 6. commons-fileupload:: 3 7. COS这个工具O'Reilly公司 3 8. 大的文件上传组件总结 3 5. 林吧实现ui Ajax+jq

HTML5 jQuery+FormData 异步上传文件,带进度条

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <link href="../resources/css/common.css" rel="stylesheet" /> <script src="../resources/js/jquery-2.1.4.js"></script> <