这篇文章主要介绍了 javascript 实现文件上传进度条功能的相关资料啊,感兴趣的朋友可以参考一下
Javascript 是一种由 Netscape 的 LiveScript 发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如 Perl,遗留的速度问题,为客户提供更流畅的浏览效果。
1. lib.js
2. add.html
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="utf-8">
- <meta name="viewport" content="width=device-width, initial-scale=1">
- <title>
- Lumino Pro - Dashboard
- </title>
- <link href="__SOURCE__/css/bootstrap.min.css" rel="stylesheet">
- <link href="__SOURCE__/css/datepicker3.css" rel="stylesheet">
- <link href="__SOURCE__/css/styles.css" rel="stylesheet">
- <link href="__SOURCE__/css/Table.css" rel="stylesheet">
- <link href="__SOURCE__/css/dt.css" rel="stylesheet">
- <link href="__SOURCE__/css/plus/buttons.css" rel="stylesheet">
- <link href="__SOURCE__/css/file.css" rel="stylesheet">
- <link href="__SOURCE__/css/webuploader.css" rel="stylesheet">
- <link href="__SOURCE__/css/plus/bootstrap-switch.min.css" rel="stylesheet">
- <link href='http://fonts.useso.com/css?family=Lato:100,300,400,700,900,100italic,300italic,400italic,700italic,900italic'
- rel='stylesheet' type='text/css'>
- <!--[if lt IE 9]>
- <link href="__SOURCE__/css/rgba-fallback.css" rel="stylesheet">
- <script src="__SOURCE__/js/html5shiv.js">
- </script>
- <script src="__SOURCE__/js/respond.min.js">
- </script>
- <![endif]-->
- </head>
- <body>
- <include file="Apps/Admin/View/include/nav.html" />
- <div id="sidebar-collapse" class="col-sm-3 col-lg-2 sidebar">
- <form role="search">
- <div class="form-group">
- <input type="text" class="form-control" placeholder="Search">
- </div>
- </form>
- <include file="Apps/Admin/View/include/menu.html" />
- </div>
- <!--/.sidebar-->
- <div class="col-sm-9 col-sm-offset-3 col-lg-10 col-lg-offset-2 main">
- <div class="row">
- <ol class="breadcrumb">
- <li>
- <a href="#">
- <span class="glyphicon glyphicon-home">
- </span>
- </a>
- </li>
- <li class="active">
- Dashboard
- </li>
- </ol>
- </div>
- <div class="row col-no-gutter-container">
- <div class="panel panel-default">
- <div class="panel-heading">
- Banner添加
- <button id='up' type="button" style='float:right; margin:4px;"' class="btn btn-default">
- <span class="glyphicon glyphicon-plus">
- </span>
- 上传
- </button>
- <button id='add' type="button" style='float:right; margin:4px;"' class="btn btn-default">
- <span class="glyphicon glyphicon-plus">
- </span>
- 确定添加
- </button>
- </div>
- <div class="panel-body">
- <div class="canvas-wrapper">
- <form id='banner'>
- <dl class='dt'>
- <dd>
- <label>
- Banner名字
- </label>
- </dd>
- <dt>
- <div class="form-group has-success">
- <input name='name' class="form-control" placeholder="Banner名字" value=''>
- </div>
- </dt>
- <div style='clear:both;'>
- </div>
- <dd>
- <label>
- Banner类型:
- </label>
- </dd>
- <dt>
- <div class="form-group has-warning">
- <select name='type' class="form-control" style='background:rgb(31,45,55); color:#FFF;'>
- <option value='1' style=' font-size:18px;'>
- 首页
- </option>
- <option value='2' style=' font-size:18px;'>
- 内页广告
- </option>
- </select>
- </div>
- </dt>
- <div style='clear:both;'>
- </div>
- <dd>
- <label>
- Banner链接地址:
- </label>
- </dd>
- <dt>
- <div class="form-group has-warning">
- <input name='link' class="form-control" placeholder="Banner链接地址" value=''>
- </div>
- </dt>
- </dl>
- <dl class='dt'>
- <dd>
- <label>
- Banner上传:
- </label>
- </dd>
- <dt>
- <div class="form-group has-warning">
- <input class="form-control" type='button' value='选择文件'>
- <input id='files' type='file' class="file">
- </div>
- </dt>
- <div style='clear:both;'>
- </div>
- <dd>
- <label>
- 文件类型:
- </label>
- </dd>
- <dt>
- <div class="form-group has-warning">
- <div id='filetype' class='left' style='padding-top:2px;'>
- </div>
- </div>
- </dt>
- <div style='clear:both;'>
- </div>
- <dd>
- <label>
- 文件上传进度:
- </label>
- </dd>
- <dt>
- <div class='form-control' style='padding:2px; height:26px; overflow:hidden;'>
- <!-- <div id='progress' style='background:#ABCDEF; width:0px; height:22px;'></div> -->
- <progress id='progress' max="100" value='0' style='width:100%; height:22px; background:#30a5ff;'>
- o(︶︿︶)o
- </progress>
- <div id='gress' height:0px; style='padding-top:2px; color:#FFF; position:relative; bottom:28px; left:40%;'>
- </div>
- </div>
- <div id='fileSize' class='right' style='padding-top:2px;'>
- <span class='left'>
- </span>
- <span>
- </span>
- </div>
- </dt>
- </dl>
- </form>
- <div style='clear:both;'>
- </div>
- <div class='fixed-table-container' style='height:244px;'>
- <img class='left' id='thmb' src=''>
- <div>
- <ul class='ul-info' style='display:none;'>
- <li>
- <span class='left'>
- 文件大小:
- </span>
- <p>
- 22222kb
- </p>
- </li>
- <li>
- <span class='left'>
- 文件路径:
- </span>
- <p>
- 22222kb
- </p>
- </li>
- <li>
- <span class='left'>
- 图片高度:
- </span>
- <p>
- 22222kb
- </p>
- </li>
- <li>
- <span class='left'>
- 图片宽度:
- </span>
- <p>
- 22222kb
- </p>
- </li>
- </ul>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- <!--/.main-->
- </div>
- <script src="__SOURCE__/js/jquery-1.11.1.min.js">
- </script>
- <script src="__SOURCE__/js/bootstrap.min.js">
- </script>
- <script src="__SOURCE__/js/file.js">
- </script>
- <script type="text/javascript" src="__SOURCE__/js/plus/bootstrap-datetimepicker.de.js"
- charset="UTF-8">
- </script>
- <script src="__SOURCE__/js/plus/bootstrap-switch.min.js">
- </script>
- <script src="__SOURCE__/js/table.js">
- </script>
- <script type="text/javascript" src='__SOURCE__/js/lib.js'>
- </script>
- <script>
- var data = new Object();
- get.Id('files').onchange = function() {
- get.filepath(this,
- function(str) {
- get.Id('thmb').src = str;
- });
- set.html(filetype, file.getName('files'));
- get.Id('progress').value = 0;
- set.html(get.Id('gress'), '');
- set.html(get.Tag(get.Id('fileSize'), 'span')[0], file.getSize('files') + 'KB');
- set.html(get.Tag(get.Id('fileSize'), 'span')[1], '/0kb');
- }
- get.Id('up').onclick = function() {
- if (file.getSize('files') <= 0) {
- return false;
- }
- file.upload({
- form: 'banner',
- //form的id
- url: '{:U('Banner / add ',0,0)}',
- //上传请求文件的地址
- //maxfile:true, //是否启用大文件上传
- dataType: 'json',
- progress: function(ev) { //--上传中的进度回掉函数
- get.Id('progress').value = file.getProgress(ev);
- //获得上传进度用file.getProgress(ev)
- set.html(get.Id('gress'), file.getProgress(ev) + '%');
- set.html(get.Tag(get.Id('fileSize'), 'span')[1], '/' + file.getProgress(ev) * (file.getSize('files') / 100 >> 0) + 'KB');
- },
- file: 'files',
- //--文件输入框的id
- //--上传完成后,后台返回的回调函数
- success: function(e) {
- set.html(get.Tag(get.Id('fileSize'), 'span')[1], '/' + file.getSize('files') + 'KB');
- set.html(get.Id('gress'), '上传完成');
- data.bannerWidth = e.bannerWidth;
- data.bannerHeight = e.bannerHeight;
- data.bannerTyle = e.bannerTyle;
- data.bannerImg = e.bannerImg;
- }
- });
- }
- get.Id('add').onclick = function() {
- data.name = get.Name('name')[0].value;
- data.type = get.Name('type')[0].value;
- data.link = get.Name('link')[0].value;
- data.act = 'add';
- Call.Ajax({
- type: 'post',
- // 请求方式
- Loading: true,
- // 是否启动动画
- time: 5,
- //动画显示几秒
- url: '{:U('Banner / add ',0,0)}?act=add',
- //请求地址
- data: data,
- //发送的数据
- dataType: 'json',
- //Ajax返回的数据类型 ,可以是String
- success: function(e) { //回调函数
- set.url(e.url);
- }
- });
- }
- </script>
- </body>
- </html>
希望本文所述对大家学习 javascript 程序设计有所帮助。
来源: http://www.phperz.com/article/17/0225/267179.html